\magnification=\magstep1
\input nice
%%\input amiga	% amiga.tex is in the formatfile
\hsize = 5 in
\vsize = 7.7 in
\voffset = 0.4in

\def\mynum#1{\ifnum #1<10 0\the#1\else \the#1\fi}
\def\mymonth#1{\ifcase#1 \or Januar \or Februar \or M\"arz \or April
   \or Mai \or Juni \or Juli \or August
   \or September \or Oktober
   \or November \or Dezember \fi}

\def \DVIprint {DVIprint}
\def \ShowDVI {ShowDVI}

\book
\contentslevel=3
\contfill={\dotfill}
\contskip=4pt
\let\scstyle=\bf
\font\subsubsectiontitlefont=cmr10 scaled \magstep1


\titlepage
\vskip 1in
\title{\ShowDVI{}, der \TeX-Previewer}
\removelastskip
\smallskip
\title{f\"ur den AMIGA}
\bigskip
\release{Version 1.13}
\smallskip
\release{vom}
\release {\mynum{\day}. \mymonth{\month}\mynum{\year}}
\bigskip
\author{von}
\author{Georg He\ss{}mann}
\vfill
\abstract{
  \ShowDVI{} ist ein \TeX-Previewer mit vielen Besonderheiten: er arbeitet
  schnell, l\"a\ss{}t sich komfortabel bedienen und flexibel
  konfigurieren. Auch nutzt er schon viele Features des neuen
  Betriebssystem 2.0 wie z.B.\ Public-Screens, Application-Icon und
  die verschiedensten Screen-Modi, die seit 2.0 verfügbar sind.
  Aber auch als \TeX-Treiber hält sich \ShowDVI{} an die vorgegebenen
  Standards wie z.B.\ den ``Level 0 DVI Driver Standard''.
}

\vskip 0.7in
\endtitlepage

\medskip
\plainsection{Inhaltsverzeichnis:}
\medskip
\makecontents
\newpage

\section{Copyright und \"ahnliches}

Das Programm \ShowDVI{} ist ``freely distributable copyrighted software''.
Das hei\ss{}t, jeder darf es sich kopieren und verwenden, das
Copyright bleibt aber vollst\"andig bei mir (Georg Heßmann).
Das Programm darf auch nur
unver\"andert weitergegeben werden.

Das Programm darf ohne meine ausdr\"uckliche Genehmigung nicht kommerziell
verkauft werden. Als PD-Software vertrieben darf der Preis 5 DM pro Diskette
nicht \"uberschreiten.

Es darf auch nur in vollst\"andiger und unver\"anderter Form
weitergegeben werden.

Diese Anleitung ``{\tt sdvi.tex}'' ist ebenfalls Copyright Georg Heßmann und darf
nicht kommerziell vervielfältigt werden. Man darf sie sich ausdrucken und auch
kopieren, man darf sie aber {\bf nicht} für Geld weitergeben.

F\"ur weitere Erkl\"arungen siehe das README-File.


\section{Allgemeines \"uber \ShowDVI{}}

\ShowDVI{}, wozu braucht man das? \parwithoutskip
\ShowDVI{} ist ein Programm, mit dem man die Ausgabe des \TeX{}-Programms auf
den Bildschirm anschauen kann. \"Ublicherweise wird so ein Programm auch
\TeX-Previewer genannt.
Wozu braucht man dieses Programm?
\TeX{} ist zwar ein exzellentes Textverarbeitungsprogramm, aber kein
WYSIWYG-Programm\footnote{what you see is what you get}. Man mu\ss{} die
\TeX-Eingabe in einem normalen ASCII-Editor eingeben und
dann mit {\tt virtex} oder {\tt tex} \"ubersetzen.
Das \TeX-Programm erzeugt daraus -- eine
fehlerfreie Eingabe vorausgesetzt -- ein DVI-File\footnote{device
independent}. Dieses kann mit einem Druckertreiber ausgedruckt werden.
Da man aber nicht nach dem Ausbessern eines einzigen Druckfehlers wieder das
ganze Dokument ausdrucken m\"ochte, ist man dazu \"ubergegangen, Previewer
zu entwickeln, mit denen man das Dokument auf dem Bildschirm betrachten kann.

\ShowDVI{} ist mein Beitrag zu den schon existierenden Previewern,
und wie Sie in dieser Bedienungsanleitung noch sehen werden, kein
schlechter.

Ein paar Besonderheiten im voraus:
\itemlist{$\bullet$ }
\next Einfache und doch sehr mächtige Bedienungsoberfläche.
\next Unterstützung vieler 2.0 Besonderheiten.
\next Leistungsfähiger ARexx-Port.
\next Schnelle Bildschirmausgabe.
\next On-Line Hilfe.
\next Unterst\"utzung von Fontlibraries (spart Speicherplatz und
 beschleunigt den Zugriff).
\next Aufwendiger Suchalgorithmus mit Hilfe von Environment-Variablen
 und Definitions-Files, um Fonts zu finden.
\next Hochgradig konfigurierbar. Ausgabe des jeweiligen Status in ein Konfigurations-File.
\enditemlist



\section{Der Aufruf von \ShowDVI{}}

\ShowDVI{} kann sowohl von Workbench als auch von CLI aus aufgerufen 
werden. Da die Tooltypes, die im Info-File angegeben werden koennen,
den Optionen, die man von CLI aus angeben kann, entsprechen, wird
zuerst der Start von CLI aus beschrieben.

Achtung: Falls \ShowDVI{} bereits im Hintergrung läuft, so wertet das neu
gestartete \ShowDVI{} die Parameter {\bf nicht} aus, sondern holt nur den
Screen des bereits laufenden \ShowDVI{} Programmes nach vorne.


\subsection{Der Start von CLI}

\ShowDVI{} kennt eine Vielzahl von Optionen, die bei dem Aufruf angegeben
werden können.

\staggered{\tt RESolution \sl Zahl }
\key{\tt HELP}	 	Gibt eine kurze Beschreibung aller Optionen aus.\hfill\break
			(Abkürzung: {\tt ?})
\key{\tt FONTDir \sl Dir} Gibt ein zusätzliches Directory an, in dem nach Fontlibraries
			und nach pk-Fonts gesucht werden soll.\hfill\break
			(Abkürzung: {\tt -a})
\key{\tt FONTMem \sl Zahl} Gibt an, wie groß der interne Fontspeicher sein soll,
			in dem die Fonts gespeichert werden.\hfill\break
			(Abkürzung: {\tt -b})
\key{\tt From \sl Zahl} Welche Seite soll als erste angezeigt werden.\hfill\break
			(Abkürzung: {\tt -f})
\key{\tt HOFFset \sl Zahl\tt XX}  Setzt den horizontalen Offset. {\tt XX}
			ist dabei eine Einheit aus: pt Point, cm Zentimeter, 
			in Inch, pc Pica, dd Did\^ot Point, cc Cicero, bp Big Point,
			mm Millimeter, mi Milli-Inch.\hfill\break
			(Abkürzung: {\tt -h})
\key{\tt VOFFset \sl Zahl\tt XX}  Setzt den vertikalen Offset. {\tt XX}
			ist wieder eine zwei-Buchstaben Abkürzung einer Einheit.\hfill\break
			(Abkürzung: {\tt -v})
\key{\tt PREload}	Wenn ausgewählt, werden alle Fonts des Dokuments gleich
			zu Beginn geladen und nicht erst dann, wenn sie wirklich
			benötigt werden.\hfill\break
			(Abkürzung: {\tt -p})
\key{\tt RESolution \sl Zahl}	Setzt die Resolution, mit der das Dokument
			angezeigt wird.\hfill\break
			(Abkürzung: {\tt -z})
\key{\tt STATistic}	Erzeugt ein ausführlicheres Logfile.\hfill\break
			(Abkürzung: {\tt -s})
\key{\tt DEBUGStat}	Schließt nach jeder Zeile das Logfile. Ist nur nützlich, wenn
			\ShowDVI{} einen GURU erzeugen sollte und man wissen möchte,
			was noch zuvor in das Logfile geschrieben wurde. Sollte
			normalerweise nicht benötigt werden.\hfill\break
			(Abkürzung: {\tt -S})
\key{\tt LOGName \sl Name} Gibt den Namen/Pfad des Logfiles an.
\key{\tt NOLog}		Unterdrückt die Erzeugung des Logfiles.\hfill\break
			(Abkürzung: {\tt -l})
\endstaggered

Als weitere Option kann der Name eines DVI-Files angegeben werden.

Die Optionen ohne Parameter sind an/aus Schalter. Werden sie angegeben, so 
wird die Option als angeschaltet betrachtet. Man kann aber auch noch die
Schlüsselwörter {\tt on} oder {\tt off} angeben. So kann man mit
{\tt statistic=on} das Flag anschalten und mit {\tt statistic=off}
wieder ausschalten.

Die Groß- Kleinschreibung ist bei den Optionen egal. Die Tastsache, daß bei der
Auflistung solch eine seltsame Groß- Kleinschreibung gewählt wurde hat einen
anderen Grund. Den, sich Tiparbeit zu ersparen. Bei allen Optionen reicht es,
den Teil der großgeschrieben ist, anzugeben.

Damit man ständig verwendete Optionen nicht immer wieder
angeben muß, wird beim Programmstart die Environment Variable {\tt ShowDVI}
ausgelesen. Diese kann man mit den Optionen belegen, die man immer verwenden
möchte. Zum Beispiel:

{\tt \ \ \ \ setenv ShowDVI "logname=t:ShowDVI.log stat=on"}

Wenn man dann doch einmal keine Statistik-Ausgaben haben möchte, so kann man
beim Programmstart diese mit {\tt stat=off} wieder ausschalten.

Die Default-Werte der Optionen werden bei der {\tt HELP} Option ausgegenen.


\subsection{Der Start von Workbench}

Bei dem Start von Workbench werden die Parameter über das Info File
des Programms übergeben. Dort werden die ``Tool-Types'' definiert.
Die Optionen, die man über CLI angeben kann, können alle auch als
Tool-Types definiert werden. Allerdings müssen sie dort großgeschrieben werden
und dürfen auch nicht abgekürzt werden.

Man kann die Default-Parameter aber auch wie beim Start von CLI über die
Environmentvariable {\tt SHOWDVI} definieren.

Der Name des DVI-Files kann über Workbench auf zwei Arten \ShowDVI{}
übergeben werden. Zum einen, in dem man erst das \ShowDVI{} Icon
aktiviert und dann auf das DVI-File doppelklickt.
Zum anderen, in dem man im Info-File des DVI-Files als
``default tool'' \ShowDVI{} einträgt.




\section{Die Bedienung von \ShowDVI{}}

Bei der Benutzeroberfläche wurde auf höchstmögliche Flexibilität und auf
möglichst große Vielseitigkeit geachtet. Und das bei möglichst
einfacher -- intuitiver Bedienung.

Dies zeigt sich zum Beispiel darin, daß es zwei verschiedene Menüs
(pop-up und pull-down) gibt, oder darin, daß praktisch alle Funktionen
per einfachen Tastendruck erreichbar sind.

Als erstes soll aber das normale Amiga-DOS ``pull-down'' ausführlich besprochen
werden, da es praktisch alle Funktionen von \ShowDVI{} beinhaltet.


\subsection{Das Amiga-DOS pull-down Menü}

\ShowDVI{} hat 4 Hauptmenüs.
Das ist einmal ``Project'', dieses ist für die Kommunikation mit der
Ausenwelt zuständig. Als zweites gibt es das Menü ``Outfit''.
Mit diesem kann man das Aussehen von \ShowDVI{} beeinflussen.
Das dritte Menü ist das ``Move'' Menü. In ihm sind die Funktionen
zusammengefaßt, die zum Wechseln der angezeigten Seite dienen.
Mit dem vierten und letzten Menü kann man die Auflösung ändern.

Unter Kickstart 37.xx hat das Menü auch eine Besonderheit.
Wenn man einen Menüpunkt anwählt (Mausknopf {\bf nicht} loslassen)
und dann die {\tt Help} Taste betätigt, wird ein Requester mit einem
kurzen Hilfetext zu dem gewählten Menüpunkt angezeigt.

\subsubsection{Project Menü}

Die Punkte des ersten Hauptmenüs ``Project'':

\staggered{\bf Auto load again }
\key{\bf About } Öffnet ein Fenster, in dem eine Copyright Meldung angezeigt wird.
		Mit dem {\tt help} Gadget kann man sich auch mehrere Seiten 
		Hilftext anzeigen lassen.\hfill\break
		Tastenkürzel: {\tt HELP}
\key{\bf Open again } Lädt das gerade geladene DVI-File neu ein.\hfill\break
		Tastenkürzel: {\tt a}
\key{\bf Open new } Öffnet eine Filerequester, mit dem man ein DVI-File
		auswählen kann, das angezeigt werden soll.\hfill\break
		Tastenkürzel: {AMIGA-\tt O}
\key{\bf Auto load again } Wenn diser Punkt aktiviert ist, wird jedesmal wenn
		das \ShowDVI{} Window aktiv wird, getestet, ob sich das DVI-File
		geändert hat. Ist dies der Fall, so wird es automatisch neu
		geladen.\hfill\break
		Tastenkürzel: {AMIGA-\tt A}
\key{\bf Shell commands } In diesem Untermenü sind die Aktionen zusammengefaßt, die
		sich auf externe Programme beziehen. Fast alle Einträge in dem
		Untermenü sind nur unter 2.0 auswählbar. Lediglich {\tt newcli}
		funktioniert auch unter 1.3. Allerdings mit stark eingeschränkter
		Funktionalität. Unter 1.3 kann solange nichts mit \ShowDVI{} machen,
		solange das CLI-Window offen ist. Erst nach einem {\tt endcli} kann
		man wieder normal mit \ShowDVI{} weiterarbeiten.
\key{\bf Print page } Druckt die gerade angezeigte Seite über die Preference-Treiber
		aus. Während der Ausdruck läuft, kann die Seite nicht gewechselt
		werden. Abbrechen kann man den Ausdruck durch erneutes anwählen
		dieses Menüpunktes. Während des Ausdrucks wird ein {\tt P} oben
		rechts in die Fensterkopfzeile geschrieben.\hfill\break
		Tastenkürzel: {\tt p}
\key{\bf WB to front } Hohlt den Workbench-Screen nach vorne.\hfill\break
		Tastenkürzel: {\tt d}
\key{\bf Hide } Legt den \ShowDVI{}-Screen nach hinten.\hfill\break
		Tastenkürzel: {\tt ESC}
\key{\bf Save config } Schreibt die aktuelle Konfiguration in das File
		{\tt ShowDVI.config}. Dazu gehört zum Beispiel die gewählte
		Auflösung und die gewälten Farben.
\key{\bf Quit } Beendet \ShowDVI{}. Allerdings wird erst mittels eines Requestors
		nach einer Bestätigung gefragt. Dies geht auch nur, wenn alle
		Fenster, die nicht unter der Aufsicht des \ShowDVI{} Screens stehen,
		geschlossen wurden. Ohne Nachfrage kann das Programm mit CTRL-C
		beendet werden.\hfill\break
		Tastenkürzel: {AMIGA-\tt Q}
\endstaggered

\subsubsection{Shell commands Untermenü}

Von diesem Untermenü aus, werden externe Programme gestartet.
Bis auf den ersten Punkt ``{\tt New CLI}'' sind alle anderen nur unter Betriebssystem
Version 2.0 oder höher anwählbar.

\staggered{\bf Set TEXFORMAT }
\key{\bf New CLI } Öffnet ein Fenster auf dem \ShowDVI-Screen und startet darin
		eine Shell.\hfill\break
		Tastenkürzel: {\tt !}
\key{\bf Execute command } Arbeitet genauso wie der gleichlautende
		Menüpunkt der 2.0 Workbench. Es wird ein String-Requester 
		geöffnet und nach einem Kommando (mit Argumenten) gefragt.
		Nach Bestätigung mittels des {\tt OK} Gadgets wird das Kommando
		ausgeführt. Falls dieses Ausgabe erzeugt, wird auch ein Fenster
		auf dem \ShowDVI-Screen geöffnet. Schließen kann man das Fenster
		entweder in dem man das {\tt CLOSE} Gadget betätigt. Oder aber
		mittels {CTRL-\tt\\}.\hfill\break
		Tastenkürzel: {AMIGA-\tt E}
\key{\bf TeX-script } Startet eine Scriptdatei, die das aktuelle DVI-File
		übersetzt. Das Ausgabefenster wird auf dem \ShowDVI-Screen
		geöffnet. Welches Format-File dabei von \TeX{} verwendet wird,
		bestimmt der Inhalt der Enironment Variable {\tt TEXFORMAT}.
		Wird dieser Menüpunkt mit der Taste {\tt R} aufgerufen, so wird
		erst noch die Möglichkeit gegeben, die Environment Variable
		zu setzen.\hfill\break
		Die Schablone der Parameter der Script ist:
		{\tt .key filename/a,directory/a,screenname/k}
		``Filename'' ist der Name des aktuell geladenen DVI-Files,
		``Directory'' ist das Direktory, in dem das DVI-File steht.
		``Screenname'' ist der Public-Screen Name, auf dem das
		Ausgabefenster der Script gestartet wird. Die Script die
		normalerweise Aufgerufen wird ist: {\tt TeX:s/ShowDVI.sh}.
		Der Name kann in dem Konfigurationsfile von \ShowDVI{}
		geändert werden.\hfill\break
		Tastenkürzel: {\tt r} oder {\tt R}
\key{\bf ARexx TeX-Shell } Startet eine ARexx-Script die die Zusammenarbeit 
		\TeX{} -- Editor -- Previewer steuert. Über mehrere weitere ARexx-Scripten
		kann man dabei einen Text aus dem Editor oder dem Previewer heraus
		übersetzen. Ist der Text fehlerfrei, wird nach dem Ende der bersetzung
		automatisch der \ShowDVI-Screen nach vorne geholt und das
		DVI-File geladen. Sind in dem Text Fehler, so kann man sich diese
		erst ganz normal in \TeX{} anschauen. Wenn man nun in {\tt virtex}
		das {\tt e} Kommando aufruft, wird der Editor nach vorne geholt,
		das Logfile geladen und die Stelle mit der Fehlererläuterung
		angesprungen und schließlich der Cursor in der Zeile mit dem
		Fehler im \TeX-Text plaziert. Mit einer weiteren ARexx Script
		{\tt NextError} kann man sogar von einem Fehler zum nächsten springen.\hfill\break
		Zu der Arbeitsweise der Scripten und wie man sie installiert gibt
		es aber noch eine eigene Anleitung.
\key{\bf Set TEXFORMAT } Öffnet einen Stringrequester. mit dem man die Environment
		Variable {\tt TEXFORMAT} setzen kann. Diese Variable wird von {\tt virtex}
		ausgewertet, falls kein Formatfile beim Aufruf angegeben wurde.
\key{\bf SpecialHost } Startet das Programm {\tt SpecialHost}, welches die Auswertung
		der \\special-Strings vornimmt.
\endstaggered

\subsubsection{Outfit Menü}

Die Punkte des zweiten Hauptmenüs ``Outfit'':

\staggered{\bf Measure Window }
\key{\bf Lace } Schaltet zwischen Interlace und Non-Interlace Darstellung hin und her.\hfill\break
		Tastenkürzel: {\tt i}
\key{\bf Scrollbar } Schaltet die Scrollbars ein und aus.\hfill\break
		Tastenkürzel: {\tt o}
\key{\bf Full page } Schaltet die ``full-page'' Darstellung ein und aus. Dabei
		wird die Seite so weit verkleinert, daß sie vollstaendig angezeigt
		werden kann. Im aktivierten ``full-page'' Modus wird ein {\tt F}
		oben rechts in der Fensterkopfzeile angezeigt.\hfill\break
		Tastenkürzel: {\tt f}
\key{\bf Measure Window } Öffnet bzw.\ schließt ein ``Measure'' Fenster. In diesem
		werden die Seitengröße sowie die Koordinaten angezeigt, die der
		Mauspointer auf der imagiären Seite hat. Dazu wird noch die 
		``magnification'', die Vergrößerung ausgegeben. Mit dieser muß man
		alle Werte multiplizieren, wenn man die Größen haben möchte, die
		die Seite nach dem Ausdrucken wirklich hat.
		Wenn man den linken Mausknopf drückt und dabei die Maus bewegt, so
		wird der Abstand zwischen der jetzigen Mausposition und der, an dem man
		den Knopf gedückt hat, angezeigt.
		Die Einheit, in der die Werte angezeigt werden, kann frei aus den Einheiten
		Inch, Zentimeter und Point gewählt werden.
		\hfill\break
		Sinnvoll kann dies vor allem dann sein, wenn man Bilder exact
		plazieren möchte.\hfill\break
		Tastenkürzel: {\tt m}
\key{\bf Border line } Schaltet die Anzeige von Hilfslinien an und aus.
		Die linke und die obere Linie zeigen an, wo horizontaler bzw. vertikaler
		Offset aufhört und das eigentliche Innere der Seite anfängt.
		Die rechte und die untere Linie bestimmen das Ende der Seite und dem 
		Sicherheitsrand gegen ``overfull boxes''.
		Die zwei Offsets kann man über Kommandline Optionen ändern.
		Die Sicherheitsränder dagegen sind immer ein Inch groß.\hfill\break
		Tastenkürzel: {\tt l}
\key{\bf 4 color screen } Bestimmt, ob der \ShowDVI-Screen zwei oder vierfarbig
		sein soll. Der einzige Nachteil eines vierfarbigen Screens ist der leicht
		erhöhte Chip-Mem Bedarf. Die Scrollgeschwindigkeit dagegen ist 
		praktisch überhaupt nicht herabgesetzt. Der Vorteil ist das bessere
		Aussehen. Vor allem unter 2.0 sieht alles erheblich besser aus.
\key{\bf Page scrollbar } Damit kann man bestimmen, ob der rechte Scrollbar dazu verwendet
		werden soll, um innerhalb der Seit zu scrollen, oder ob man damit die
		anzuzeigende Seite auswählen möchte. Ist man im ``Seiten-scroll'' Modus,
		so wird immer eine Seitennummer innerhalb der Scrollbars angezeigt.
		Man kann nun eine neue Seite auswählen. Übernommen wird die Seite,
		in dem man entweder das {\tt OK} Gadget drückt, oder in dem man eine
		der normalen Seitenwechseltasten (wie RETURN, ENTER, $\ldots$) 
		betätigt. Diesem Modus ausschalten ohne die Seite zu wechseln erreicht
		man durch nochmaliges Anwählen des Menüpunktes.\hfill\break
		Tastenkürzel: {\tt s}
\key{\bf Unit } In diesem Untermenü kann man festlegen, mit welcher Einheit das
		``Measure'' Window seine Werte anzeigen soll. Zur Auswahl stehen
		Inch (in), Zentimeter (cm) und die \TeX\ Einheit Point (pt).
		Alle Einheiten können auch so innerhalb \TeX\ verwendet werden.
\key{\bf Color } Dieser Menüpunkt öffnet einen Farbrequester, mit dem man die
		Farben des \ShowDVI-Screens ändern kann. Abgespeichert wird
		die Farbeneinstellung mit dem ``Save config'' Menüpunkt.\hfill\break
		Tastenkürzel: {AMIGA-\tt C}
\key{\bf Clone WB color} Dieser Punkt setzt die Farben des \ShowDVI-Screens auf
		die Farben des Workbench-Screens.
\endstaggered

\subsubsection{Move Menü}

Die Punkte des dritten Hauptmenüs ``Move'':

\staggered{\bf Use order of the dvi-file }
\key{\bf Prev page } Wechselt auf die vorhergehende Seite. \hfill\break
		Tastenkürzel: {\tt -} oder {\tt BACKSPACE}
\key{\bf Next page } Wechsetlt auf die nächste Seite. \hfill\break
		Tastenkürzel: {\tt +} oder {\tt RETURN} oder {\tt ENTER}
\key{\bf First page } Wechselt auf die erste Seite. \hfill\break
		Tastenkürzel: {\tt SHIFT} zusammen mit {\tt -} oder {\tt BACKSPACE}
\key{\bf Last page } Wechselt auf die letzte Seite. \hfill\break
		Tastenkürzel: {\tt SHIFT} zusammen mit {\tt +} oder {\tt RETURN} oder {\tt ENTER}
\key{\bf Jump to page counter } Wechselt auf die Seite, die der ``Page jump counter''
		(kurz PJC) angibt. Der Inhalt des Zählers wird oben rechts in der
		Fensterkopfzeile angezeigt. Gesezt wird der Zähler über die 
		Zifferntasten. Löschen kann man ihn mittels der Taste {\tt c}.\hfill\break
		Tastenkürzel: {\tt .} oder {\tt g}
\key{\bf Clear page counter } Löscht den ``Page jump counter''.\hfill\break
		Tastenkürzel: {\tt c}
\key{\bf Use order of the dvi-file } \ShowDVI{} kennt zwei verschiedene Arten, die
		Seiten des DVI-Files zu ordnen. Einmal die ``normale'' Art und Weise.
		Hier wird die von \TeX\ vergebene Seitennumer als Ordnungsgrundlage
		verwendet. Es kann allerdings auch vorkommen, daß eine Seitennummer 
		mehrfach im DVI-File vorkommt. Um auch damit gut umgehen zu können,
		gibt es auch noch eine andere Möglichkeit die Seiten zu ordnen.
		Diese Ordnung wird auch die ``physikalische Methode'' genannt,
		da hier einzig und alleine die Reihenfolge der Seiten innerhalb
		des DVI-Files als Ordnungsgrundlage verwendet. Die erste Seite
		des DVI-Files hat dabei immer die Seitennummer 1. Dieser Modus
		wird mit einem {\tt Y} rechts oben in der Fensterkopfzeile
		angezeigt. \hfill\break
		Tastenkürzel: {\tt y}
\key{\bf Prev page } Wechselt auf die, der aktuellen Seite, ``physikalisch'' 
		vorangehenden Seite. Dazu wird nur für einen Seitenwechsel
		temporär in den ``physikalischen'' Modus geschaltet.
		Dies funktioniert mit allen Seitenwechseltasten, in dem man
		zusätzlich die {\tt CTRL} Taste drückt.\hfill\break
		Tastenkürzel: {\tt CTRL} zusammen mit {\tt -} oder {\tt BACKSPACE}
\key{\bf Next page } Wechselt auf die, der aktuellen Seite, ``physikalisch'' 
		nachfolgenden Seite.\hfill\break
		Tastenkürzel: {\tt CTRL} zusammen mit {\tt +} oder {\tt RETURN} {\tt ENTER}
\key{\bf First page } Wechselt auf die allererste Seite des DVI-Files.\hfill\break
		Tastenkürzel: {\tt CTRL} und {\tt SHIFT} zusammen mit {\tt -} oder {\tt BACKSPACE}
\key{\bf Last page } Wechselt auf die allerletzte Seite des DVI-Files.\hfill\break
		Tastenkürzel: {\tt CTRL} und {\tt SHIFT} zusammen mit {\tt +} {\tt RETURN} oder {\tt ENTER}
\endstaggered


\subsubsection{Resolution Menü}

Dieses, letzte, Hauptmenü hat eine Besonderheit.
Seine Einträge sind nicht starr vorgegeben, sondern können über das
Konfigurationsfile {\tt ShowDVI.config} frei gewählt werden.
Allerdings doch nicht ganz frei. Es können nur Menüpunkte definiert
werden, die die Auflösung ändern, und es dürfen auch nur maximal
10 solcher Einträge definiert werden. Sprich, man kann 10 beliebige
DPI Zahlen in das Konfigurationsfile schreiben, die dann zur Auswahl
angeboten werden.

Als Tastenkürzel dient AMIGA-{\tt 1} für den ersten Punkt, bis AMIGA-{\tt 9}
für den neunten Punkt. Der zehnte, sowie der elfte (den gibt es dann, wenn
man über Option eine Startauflösung gewählt hat, die sonst noch nicht in der
Liste vertreten ist) haben leider keine Abkürzung über eine Tastenfolge.
Diese kann man nur mit der Maus auswählen.




\subsection{Das Popup-Men\"u}

Je nach Konfiguration erscheint das Pop-up Menü nach Drücken der
rechten Maustaste oder durch Drücken der mittleren Maustaste.
Letzteres benötigt sowohl Amiga-DOS 2.0, als auch eine drei-Tasten Maus.

Das Amiga-DOS Menü ist aber auch dann erreichbar, wenn man das Popup-Menü
auf die rechte Maustaste gelegt hat. Man muß dann lediglich mit der Maus in die Kopfzeile
(oder noch höher) des Fensters fahren und erst dort die rechte Maustaste drücken.

Eine weitere Eigenschaft des Pop-Up Menüs läßt sich über das Konfigurationsfile
einstellen. Entweder erscheint das Menü immer rechts unterhalb des Mauszeigers,
oder es merkt sich, welcher Menüpunkt als letzter ausgewählt wurde und 
positioniert das Menü so, daß dieser Menüpunkt gleich wieder ausgewählt ist.
Dieser Modus ist auch die Default-Einstellung.

Die einzelnen Eintr\"age des Men\"us sind in Zeilen
untereinander angeordnet. Die Zeilen, an deren Ende ein Pfeil ist, haben
noch ein Untermen\"u. Wenn man die Maus in die N\"ahe eines dieser Pfeile
bringt, klappt das Untermen\"u auf. Ausgew\"ahlt wird ein Men\"upunkt in dem
\"uber ihm die rechte Maustaste wieder losgelassen wird. M\"ochte man die
erste Zeile einen Untermen\"us ausw\"ahlen, so gen\"ugt es, die dem
Untermen\"u zugeh\"orige Zeile im Hauptmen\"u auszuw\"ahlen.



\subsubsection{Das Hauptmen\"u des pop-up Menüs}

Das Hauptmen\"u beinhaltet folgende Punkte:
\staggered{\tt show full page }
\key{\tt about} Zeigt einen Requester mit einem h\"ochst interessanten Text
 an. Mit diesem Requester kann man sich eine kurze Hilfe zu den
 Tastaturkommandos anzeigen lassen.
\key{\tt +\ \ \ \ ++} Dies ist ein zweigeteilter Men\"upunkt. Mit {\tt +} kommt man
 auf die n\"achste und mit {\tt ++} auf die letzte Seite.
\key{\tt -\ \ \ \ --} Entspricht dem Men\"upunkt von oben, nur da\ss{} es hier
 entweder auf die vorherige oder die erste Seite geht.
\key{\tt show full page} Verkleinert die aktuelle Seite so, da\ss{} sie
 vollst\"andig auf den Bildschirm pa\ss{}t.
\key{\tt outfit\ \ \ \ \ =>} Dies ist ein Untermen\"u, in dem die Kommandos zum Ver\"andern
 des Aussehens des \ShowDVI-Screens stehen.
\key{\tt load DVI\ \ \ =>} Ein Untermen\"u zum Laden eines neuen DVI-Files.
\key{\tt resolution\ =>} Mit diesem Untermen\"u kann die
 Aufl\"osung der Anzeige ge\"andert werden.
\key{\tt print page} Kommando zum Ausdruck der aktuellen Seite. Dies
 geschieht mittels eines Betriebssystemaufrufes. Man kann also \"uber die
 Einstellung in Preferences den Druckertyp ausw\"ahlen und
 die gew\"unschte Aufl\"osung einstellen. L\"auft bereits ein
 Druckauftrag, so hei\ss{}t das Men\"u {\tt abort print}. Damit
 kann dann der laufende Ausdruck abgebrochen werden.
\key{\tt hide\ \ quit}
 Noch ein zweigeteilter Men\"upunkt. Mit {\tt hide} wird der
 \ShowDVI-Screen nach hinten gelegt und {\tt quit} beendet,
 nach einer Sicherheitsabfrage, das Programm.
 Man kann das Programm \"ubrigens mittels Control-{\tt C} ohne Abfrage
 beenden.
\endstaggered


\subsubsection{Das Untermen\"u ``outfit'' des pop-up Menüs}

Dieses Untermen\"u beinhaltet folgende Punkte:
\staggered{\tt hide scrollbar }
\key{\tt unset lace} Schaltet vom Interlace-Modus auf den
Noninterlace-Modus. Danach lautet der Men\"upunkt {\tt set lace}.
\key{\tt hide scrollbar} Entfernt die Scrollbars. Falls die Scrollbars nicht
 aktiv sind, hei\ss{}t der Men\"upunkt {\tt show scrollbar}.
\key{\tt change color} Ruft einen Farb-Requester auf, mit dem die
 Farben des \ShowDVI{}-Bildschirms ge\"andert werden k\"onnen.
\key{\tt save config} Speichert die augenblickliche Konfiguration in ein
 File ab. Das File-Format wird noch in Kapitel 6 erkl\"art.
\endstaggered
Wie schon einmal erw\"ahnt, braucht man, um den Punkt {\tt (un)set lace}
aufzurufen, diesen nicht explizit auszuw\"ahlen; es gen\"ugt,
wenn man den Hauptmen\"upunkt {\tt outfit} ausw\"ahlt. Da {\tt (un)set lace}
der erste Punkt in diesem Untermen\"u ist, wird dieser aufgerufen.
Ebenso funktioniert dies nat\"urlich auch mit den ersten Zeilen der anderen
Untermen\"us.


\subsubsection{Das Untermen\"u ``load DVI'' des pop-up Menüs}

Dieses Untermen\"u besteht aus zwei Punkten. Einmal dem
{\tt load file again}, das das aktuelle File neu einliest und wieder genau
an die selbe Stelle springt, an der man vorher war. Zum anderen der Punkt
{\tt load new file}. Dieser ruft einen File-Requester auf, mit dem man
ein neues DVI-File ausw\"ahlen kann.

\subsubsection{Das Untermen\"u ``resolution'' des pop-up Menüs}

Dies ist ein besonderes Men\"u, da es vom Benutzer vordefiniert werden
kann. Es besteht aus bis zu 10 DPI-Eintr\"agen, mit denen man die
Aufl\"osung \"andern kann, in der das DVI-File angezeigt wird. Dazu mu\ss{} man
allerdings auch \"uber die Fonts in den jeweiligen Aufl\"osungen
verf\"ugen. Ohne Benutzer\"anderungen hat das Men\"u drei Eintr\"age:
{\tt 100 dpi}, {\tt 83 dpi} und {\tt 120 dpi}. Das Generieren
eigener Eintr\"age ist im Kapitel 6 nachzulesen.





\subsection{Gadgets, Scrollbars und Requester}

Das Programm hat fast 20 verschiedene Gadgets, Scrollbars und Requester.
Die meisten sind zwar selbsterkl\"arend, aber manche haben auch eine
versteckte Funktion. Daher soll nun jedes einzelne Element erkl\"art werden.

\subsubsection{Die Gadgets}

Der gr\"o\ss{}te Teil der Gadgets ist innerhalb der Kopfzeile.
Von links nach rechts:
\itemlist{-- }
\next Das ``Window-Close'' Gadget. Mit ihm beendet man nach einer
 Sicherheitsabfrage das Programm.
\next Das ``$-$$-$'' Gadget. Durch Klicken auf dieses Gadget springt man auf
 die erste Seite im Dokument.
\next Das ``$-$'' Gadget. Dieses Gadget bl\"attert um eine Seite nach vorne.
\next Das ``$+$'' Gadget. Dies korrespondiert mit dem ``$-$'' Gadget. Mit ihm
 kommt man auf die n\"achste Seite.
\next Das ``$++$ Gadget. Mit diesem springt man auf die letzte Seite des
 DVI-Files.
\next Das ``D'' Gadget. Dies ist ein Stringgadget. Im Normalfall zeigt es
 das aktuelle Directory an, bzw.\ das Directory in welchem das
 aktuelle DVI-File zu finden ist. Man kann es nat\"urlich auch
 \"andern. Dieses Directory ist auch das aktuelle Verzeichnis des
 Filerequesters.
\next Das ``F'' Gadget. In diesem Stringgadget wird das aktuelle DVI-File
 angezeigt. Hier kann man auch ein neues File angeben. Falls man es
 nur anklickt und {\tt RETURN} dr\"uckt wird das aktuelle File
 neu eingelesen. Dies ist dann praktisch, wenn man im Hintergrund
 das \TeX-File ge\"andert und neu \"ubersetzt hat.
\next Das ``\#'' Gadget. Hier wird die aktuelle Seitennummer angezeigt.
 Man kann damit nat\"urlich auch eine neue Seite anw\"ahlen.
 Falls eine logische Seitennummer mehrfach in dem DVI-File vorkommt,
 so wird rechts neben diesem Gadget angezeigt, die wievielte Seite
 mit dieser Nummer die aktuelle Seite ist.
\enditemlist
Ganz an dem rechten Rand kann unter bestimmten Umst\"anden noch ein
``{\tt OK}'' Button erscheinen. Mehr dazu bei der Besprechung der
Scrollbars. Auch die anderen Gadgets werden zusammen mit den Scrollbars
erkl\"art.


\subsubsection{Die Scrollbars}

Am unteren und rechten Rand befinden sich die Scrollbars. Im Normalzustand
verhalten sie sich nicht anders als gewohnt. Wenn man allerdings das Gadget
ganz rechts unten anklickt, wird der vertikale Scrollbar in den
``Seiten-Scroll-Modus'' geschaltet. Dabei ver\"andert sich das Aussehen
folgenderma\ss{}en: \"Uber dem Scrollbar erscheint ein {\tt OK}-Button,
der gerade angeklickte Button verwandelt sich in einen {\tt NO}-Schalter
und der Scrollbar selbst zeigt die aktuelle Seite an. Nun kann per Maus
eine Seite ausgew\"ahlt werden. Mit dem {\tt OK}
Gadget springt man schlie\ss{}lich zur markierten Seite oder man bricht mit dem
{\tt NO} Knopf den Seiten-Scroll-Modus ab.

Dies kann man auch vollst\"andig \"uber die Tastatur steuern.
Die Taste ``s'' schaltet den ``Seiten-Scroll-Modus'' ein.
Mit den Cursor Tasten kann dann eine bestimmte Seite ausgew\"ahlt werden.
Uebernommen wird sie mit allen Tasten, die auch sonst eine Seiten\"anderung
bewirken (z.B.\ RETURN/ENTER/BACKSPACE).
Nochmaliges dr\"ucken der Taste ``s'' entspricht dem {\tt NO} Gadget, der
``Seiten-Scroll-Modus'' wird ohne \"Anderung der Seitennummer verlassen.

Eine weitere Besonderheit halten die Auf- und Ab-Pfeile des vertikalen
Scrollbars bereit. Befindet man sich am Ende einer Seite, so kann man
mit einem Doppelklick auf den nach unten zeigenden Pfeil auf den
Beginn der n\"achsten Seite springen. Ist man dagegen am Anfang einer
Seite, so kommt man mit einem Doppelklick auf den nach oben zeigenden Pfeil
an das Ende der vorhergehenden Seite. So kann man nur durch Klicken auf
diese beiden Pfeile durch das gesamte DVI-File scrollen.

Abschalten kann man die Scrollbars nat\"urlich auch. Entweder mit der Taste
``{\tt o}'' oder per Men\"upunkt ``{\tt hide scrollbar}'' im
{\tt outfit}-Men\"u. Der Zustand der Scrollbars, sichtbar oder nicht, kann
nat\"urlich auch im Konfigurations-File abgespeichert werden.




\subsubsection{Die Fenster/Requester}

Folgende Fenster/Requester gibt es im Programm:

\itemlist{-- }
\next Das Hauptfenster. Dieses füllt immer den gesamten \ShowDVI-Screen.
	In ihm wird die \TeX-Seite angezeigt.
\next Das About-Hilfe-Fenster. Dieses wird per Menüpunkt {\tt about}
	oder per {\tt Help} Taste aufgerufen. Man kann dieses Fenster
	mit {\tt RETURN} {\tt q} oder dem {\tt OK} Gadget schließen.
	Mit dem {\tt help} Gadget kann man sich einen mehrseitigen Hilfetext
	anzeigen lassen.
\next Das Measure-Fenster. Dieses wird mit dem Menüpunkt {\tt Measure Window}
	oder der {\tt m} Taste aktiviert. Mit diesem Fenster kann man
	die \TeX-Seite abmessen. Schließen kann man das Fenster durch
	nochmaliges Anwählen des Menüpunktes oder wieder mit der {\tt m}
	Taste.
\next Der Filerequester. Aufgerufen wird dieser mit dem Menüpunkt
	{\tt Open new} oder mit der Tastenkombination {\tt AMIGA-O}.
	Für diesen Filerequester wird die {\tt req.library} benötigt!
\next Der Farbrequester. Aufruf: Menüpunkt {\tt Change color} oder
	{\tt AMIGA-C}. Auch für diesen Requester wird die {\tt req.library}
	benötigt.
\next Der Programmende Requester. Dieser wird immer dann aufgerufen, wenn
	man das Programm verlassen möchte (außer bei {\tt CTRL-C}).
	Dabei ist wichtig zu erwähnen, daß man das Programm nur dann
	beenden kann, wenn man alle Fenster auf dem \ShowDVI-Screen geschlossen
	hat, die nicht der direkten Kontrolle von \ShowDVI{} unterstehen.
\enditemlist




\subsection{Bedienung \"uber die Tastatur}

Praktisch alles was man mit Hilfe der Maus an Kommandos ausf\"uhren kann,
ist auch \"uber die Tastatur erreichbar.


\subsubsection{Innerhalb einer Seite scrollen}

Innerhalb einer Seite scrollt man entweder -- bei eingeschalteten Scrollbars --
mit der Maus, oder aber mit den Cursor-Tasten.
Mit der Cursor-Up-Taste kommt man an den Seitenanfang und mit der
Cursor-Down-Taste an das untere Ende der Seite. Links/rechts geht analog.
Bei gedr\"uckter Shift-Taste ist die Scroll-Geschwindigkeit herabgesetzt.
Mit Alt und einer Cursor-Taste kommt man an den jeweiligen Rand der Seite.


\subsubsection{Einfaches Bl\"attern}

Die aktuelle Seite verlassen und auf eine Neue springen kann man mit 7
verschieden Tasten.
Die einfachsten davon sind:
\itemlist{$\bullet$ }
\next {\tt RETURN}; Damit kommt man auf die n\"achste Seite, bleibt aber auf
 der selben H\"ohe der Seite. Zusammen mit einer Taste wie
 Shift oder Alt springt man auf die letzte Seite.
\next {\tt BACKSPACE} oder {\tt -} auf der normalen Tastatur. Mit diesen zwei
 Tasten kommt man auf die vorhergehende Seite und bleibt ebenfalls
 auf dem selben Ausschnitt der Seite. Auch springt man mit Shift oder
 Alt auf die erste Seite.
\next {\tt ENTER} hat die selbe Funkion wie {\tt RETURN} nur das man
 an den Anfang der Seite kommt. Dies ist f\"ur ein Scrollen durch
 das File n\"utzlich.
\next $-$ auf dem Zahlenblock hat die selbe Funktion wie {\tt BACKSPACE},
 nur da\ss{} man immer ganz am unteren Ende der Seite herauskommt.
\enditemlist

H\"alt man w\"ahrend dem Bet\"atigen einer der obig genannten Tasten die
{\tt Ctrl} Taste gedr\"uckt, so kommt man tempor\"ar in den
``physikalischen Modus''. Eine Erkl\"arung dazu folgt in den n\"achsten
Abschnitten. Nur so viel vorweg: man kommt dann mit {\tt RETURN}
nicht auf die Seite mit der n\"achst gr\"o\ss{}eren Seitennummer, sondern
auf die, die im DVI-File als n\"achste der aktuellen Seite folgt.

Die weiteren M\"oglichkeiten verlangen noch eine weitere Erkl\"arung.


\subsubsection{Bl\"attern mittels des ``PJC''}

``PJC'' oder ``Page Scroll Counter''\footnote{Seiten-Scroll-Z\"ahler}
ist eine maximal vierstellige numerische Variable,
die \"uber die Tasten {\tt 0} bis
{\tt 9} gesetzt werden kann. Ihr jeweiliger Inhalt wird, wenn gesetzt,
rechts oben auf der Fensterkopfzeile neben dem {\tt \#}
Gadget angezeigt. Mit der Taste {\tt c} kann ihr Inhalt gel\"oscht
werden.

Wozu wird dieser Z\"ahler ben\"otigt? \parwithoutskip
Mit {\tt g} oder dem `{\tt .}' von dem Zehnerblock wird auf die Seite, die
der PJC angibt, gesprungen. Mit der Eingabe {\tt c 1 5 g} springt man also
auf Seite 15. Danach ist der Z\"ahler automatisch auf Null zur\"uckgesetzt.

Dar\"uberhinaus geht er auch noch bei den anderen Tasten zum
Seitenwechseln mit ein. Mit {\tt 3 RETURN} spring man drei Seiten vorw\"arts
und mit {\tt 7 -} sieben Seiten zur\"uck.

Mit Hilfe dieses Z\"ahlers reichen Zehnerblock und Cursor-Tasten
vollst\"andig aus, um sich in einem DVI-File flott zu bewegen.

Auch die Tasten {\tt g} und {\tt .} k\"onnen mittels einer gedr\"uckten
{\tt Ctrl} Taste tempor\"ar auf die Verwendung der physikalischen
Seitennummern umgestellt werden. So kommt man mittels
{\tt 1 5 Ctrl-g} auf die 15'te Seite innerhalb des DVI-Files.
Diese kann ohne weiteres eine von 15 verschiedene (logische)
Seitennummer haben.


\subsubsection{Verschiedenes}

Es gibt noch eine Reihe anderer Tasten, die mit Funktionen belegt sind:
\staggered{AMIGA-{\tt q} }
\key{\tt f} Zeigt die aktuelle Seite im ``Ganzseiten-Modus'' an.
 Dazu wird die Seite so verkleinert, da\ss{} sie in der jeweiligen
 Bildschirmaufl\"osung vollst\"andig angezeigt werden kann.
 Wenn man im ``full-page-modus'' die Seite wechselt,
 so wird diese ebenfalls in diesem Modus angezeigt.
 In die normale Anzeigeform kommt man durch erneutes Bet\"atigen
 der Taste {\tt f} zur\"uck.
 Zur Best\"atigung, da\ss{} man auch wirklich im ``Ganzseiten-Modus'' ist,
 wird rechts neben dem {\tt \#} Gadget, in dem Status Feld,
 ein `F' angezeigt.
\key{\tt i} Schaltet zwischen Interlace- und Noninterlace-Modus hin und
 her.
\key{\tt o} Schaltet die Scrollbars an und ab.
\key{\tt m} Öffnet/schließt das ``Measure'' Fenster.
\key{\tt l} Zeigt bzw. löscht die `Border'' Linien. Diese zeigen die
	Ränder der \TeX-Seite an.
\key{\tt c} L\"oscht den Page Jump Counter.
\key{\tt a} L\"adt das aktuelle DVI-File neu ein, bleibt aber auf der
 selben Seite.
\key{\tt s} Schaltet den Page-Scroll-Modus an. Mit den Cursor-Up-
Down-Tasten kann man dann die gew\"unschte Seite ausw\"ahlen und
 mit einer der Seitenwechseltasten ({\tt RETURN ENTER BACKSPACE - g
 .}) anspringen. Nochmaliges Dr\"ucken der Taste {\tt s} wirkt wie
 das {\tt NO} Gadget.
\key {\tt y} Mit dieser Taste wechselt man zwischen den zwei verschieden
 M\"oglichkeiten eine Seitennummer zu interpretieren.
 Es gibt zum einen die M\"oglichkeit, jede Seitennummer als die
 zu interpretieren, die sie im \TeX-Text hat (logische Nummer).
 Setzt man am Anfang eines \TeX-Text zum Beispiel mittels {\tt \\pageno=7}
 die erste Seitennummer auf sieben, so interpretiert der Previewer
 im Normalfall die physikalisch erste Seite des DVI-Files als die
 Seite mit der Nummer sieben. Schaltet man per 'y' Taste allerdings
 in den physikalischen Seitennummer Modus um, so wird die erste
 Seite des DVI-Files auch mit der Seitennummer eins versehen. 
 Dieser Modus wird mit einem 'Y' in der rechten Seite der
 Fensterkopfzeile angezeigt.
\key {\tt '\ '} (SPACE) \"Ahnlich dem {\tt more} Utility. Scrollt um eine kanppe
 Bildschirmseite nach unten. War man ganz am unteren Rand der Seite, so
 wird eine Seite vorw\"arts gebl\"attert.
\key {\tt b} Kommt ebenfalls von dem {\tt more} Utility. Scrollt um eine
 knappe Bildschirmseite nach oben. Wie bei der SPACE Taste springt man auf
 die vorhergehende Seite, falls man ganz am oberen Rand der Seite war.
\key{\tt p} Druckt die aktuelle Seite aus. Solange der Druck noch nicht
 abgeschlossen ist, wird oben rechts neben dem {\tt \#} Gadget
 ein ``P'' angezeigt. Durch wiederholtes Dr\"ucken der
 {\tt p}-Taste kann der Druck abgebrochen werden.
\key{\tt d} Bringt den Workbench-Screen nach vorne und aktiviert das
 Fenster, das vor dem Start von \ShowDVI{} aktiv war.
\key{\tt !} \"Offnet ein Shell-Fenster auf dem \ShowDVI-Screen. \ShowDVI{}
 wartet, bis die Shell mit {\tt endcli} wieder geschlossen wurde.
\key{\tt r} Ruft eine Script auf, die das aktuell geladene DVI-File neu übersetzt.
	Als Formatfile wird der Inhalt der Environmentvariable {\tt TEXFORMAT}
	verwendet. (Funktioniert nur unter 2.0)
\key{\tt R} Hat dieselbe Funktion wie {\tt r}. Mit nur einem Unterschied:
	es wird zuerst nach einem Formatfile gefragt. Dieses wird dann in der
	Environmentvariable {\tt TEXFORMAT} abgespeichert.
\key{AMIGA-{\tt e}} Öffnet einen Stringrequester in dem nach einem Kommando
	gefragt wird. Dieses wird dann ausgeführt.
\key{AMIGA-{\tt c}} Ruft den Farb-Requester auf.
\key{AMIGA-{\tt o}} \"Offnet den File-Requester.
\key{AMIGA-{\tt q}} Beendet das Programm.
\key{ESC} Diese Taste hat zwei Funktionen abh\"angig von der Einstellung
 im Konfigurations-File. Entweder beendet die Taste das Programm, oder (im
 Normalfall) es legt lediglich den \ShowDVI-Screen nach hinten und
 aktiviert das Fenster, das vor dem Aufruf von \ShowDVI{} aktiv war.
\endstaggered
Dar\"uberhinaus kann man die Funktionstasten mit ARexx-Scripts
belegen. Genaueres dazu im n\"achsten Kapitel.



\subsubsection{Zur physikalische Seitennummerierung$\ldots$}

Wie schon oben erw\"ahnt, kann man mittels der 'y' Taste zwischen
einer logischen Seitennummerierung (default) und einer
physikalischen w\"ahlen. Was sind dabei nun aber die gro\ss{}en
Unterschiede?

In einem normalen plain-\TeX{} Text fallen sie \"uberhaupt nicht auf. Nur
wenn man die Seitennummerierung innerhalb eines \TeX{} Files
\"andert, ergeben sich Unterschiede.

Zum einen beim Bl\"attern. Kommt man bei der logischen
Seitennummerierung mit der {\tt RETURN} Taste von einer Seite immer
auf die mit der n\"achst gr\"o\ss{}eren Seitennummer, so kommt man
bei der physikalischen Nummerierung immer auf die Seite, die als
n\"achstes im DVI File der aktuellen Seite folgt.

Aber auch beim Springen an das Ende des Textes ergeben sich Unterschiede.
So spring man mittels {\tt SHIFT RETURN} im logischen Modus an die
Seite, die die gr\"o\ss{}te logische Seitennummer hat. Im physikalischen
Modus dagegen an die letzte Seite innerhalb des DVI Files.

Wie schon erw\"ahnt wechselt man mit Hilfe der 'y' Taste zwischen
den verschiedenen Seitennummerierungen. Wie aber ebenfalls schon erw\"ahnt
kann man auch nur tempor\"ar (nur f\"ur die eine auszuf\"uhrende Aktion)
vom logischen Modus in den physikalischen Modus umschalten.
Dies geschieht mittels der Control-Taste. Zusammen mit eine der Tasten
{\tt RETURN ENTER - BACKSPACE . g} gedr\"uckt, wird das folgende
Wechsel der Seite im physikalischen Modus durchgef\"uhrt.
Danach ist man sofort wieder im logischen Modus.




\section{ARexx Port}

Wie jedes Programm das etwas auf sich h\"alt, hat auch das
\ShowDVI{}-Programm einen ARexx-Port. Der Name des Ports ist ``showdvi''.
Die File-Extension f\"ur Scripts ist ``.sd''.


\subsection{Die Kommandos}

Folgende Kommandos beherrscht das Programm bisher:
\staggered{\tt getstring \it [def] [title] }
\key{\tt first}   gehe auf die erste Seite
\key{\tt last}   gehe auf die letzte Seite
\key{\tt prev \it [nr]}  gehe {\it nr} Seiten zur\"uck, oder falls
 {\it nr} fehlt auf die vorherige Seite
\key{\tt next \it [nr]}  gehe {\it nr} Seiten weiter, oder falls
 {\it nr} fehlt, auf die n\"achste Seite
\key{\tt goto \it nr}  gehe auf Seite Nummer {\it nr}
\key{\tt tofront}  Screen nach vorne
\key{\tt toback}  Screen in den Hintergrund
\key{\tt wbtofront}  Workbench-Screen nach vorne
\key{\tt screen}  gib die Adresse des Screens hexadezimal aus
\key{\tt fullpage}  wechsel zur Anzeige im Ganzseiten-Modus
\key{\tt printpage}  drucke die aktuelle Seite aus, oder falls
 schon ein Ausdruck l\"auft, breche diesen ab.
\key{\tt setdir \it dir} setze das aktuelle Directory auf {\it dir}
\key{\tt loadnew \it file} lade ein neues DVI-File
\key{\tt loadagain}  lade das aktuelle DVI-File neu
\key{\tt getdir}  liefere das aktuelle Directory zur\"uck
\key{\tt getfile}  liefere den Filenamen des aktuellen DVI-File zur\"uck
\key{\tt getpage}  liefere die aktuelle Seitennummer zur\"uck
\key{\tt togglelace}  \"andere den Anzeige-Modus (lace
 $\leftrightarrow$ hires)
\key{\tt togglescrollbar} Scrollbar an/aus
\key{\tt setcolor \it nr r g b} setze die Screen-Farbe {\it nr} auf
 {\it r g b}
\key{\tt setresolution \it dpi} setze die aktuelle Aufl\"osung auf {\it dpi}
\key{\tt beep}   setze ein DisplayBeep ab
\key{\tt message \it string} gib eine Meldung aus. Diese wird in die
 Screen-Kopfzeile eingetragen und nach sieben Sekunden wieder
 \"uberschrieben.
\key{\tt refresh}  Bildschirm-Refresh (Ausschalten des Fullpage-Modus)
\key{\tt spawn \it prozedure} interpretiere {\it prozedure.sd}
\key{\tt version}  liefere den Version-String zur\"uck
\key{\tt saveconfig}  speichere die aktuelle Konfiguration ab
\key{\tt activate} aktiviert das \ShowDVI-Fenster
\key{\tt getnumber \it [def] [title]} öffnet einen Requester in dem man eine Zahl
	eingeben kann. {\it def} ist ein Default-Wert und {\it title} ist der Titel
	den der Requester haben soll
\key{\tt getstring \it [def] [title]} Öffnet einen Requester in dem man einen String
	eingeben kann. {\it def} ist ein Default-Wert und {\it title} ist der Titel
	den der Requester haben soll
\key{\tt okay1 \it text} Öffnet einen Requester mit dem Text {\it text} und einem
	OK Gadget.
\key{\tt okay2 \it text} Öffnet einen Requester mit dem Text {\it text} und einem
	OK und einem CANCEL Gadget. Je nach Gadget wird '0' oder '1' in der RESULT
	Variable zurückgegeben
\key{\tt menu \it men item sub} Wirkt so, als ob man den entsprechenden Menüpunkt
	direkt per Maus angewählt hätte. Z.\ B.\ {\tt menu 0 0} öffnet das About-Fenster
\key{\tt exit}   beende \ShowDVI{}
\endstaggered

Die Ausgabe der Kommandos wie {\tt getfile} oder {\tt getpage} werden
bei gesetztem {\tt options results} in der RESULT Variable
\"ubergeben.

Falls wichtige Kommandos in der bisherigen Implementierung des ARexx-Ports
fehlen, so sollte man mir diese mitteilen. Falls sie sinnvoll erscheinen,
werde ich sie gerne einbauen.

Falls jemand die kommerzielle Amiga\TeX-Version besitzt: Die wenigen ARexx-Befehle
des dortigen Previewers sind bei mir ebenfalls implementiert. Diese sind:
{\tt getcwd} (entspricht {\tt getdir}), {\tt filename} (= {\tt getfile}) und
{\tt pagenum} (= {\tt getpage}). {\tt screen} und {\tt exit} sind ohnehin
vorhanden.



\subsection{Funktionstastenbelegung}

Im Konfigurations-File kann f\"ur jede Funktionstaste mit und ohne
Shift jeweils ein ARexx-Script angegeben werden, das bei
Bet\"atigung der entsprechenden Funktionstaste ausgef\"uhrt wird.
N\"aheres dazu im Kapitel \"uber die Konfigurations-Files.



\subsection{Erzeugung nichtgefundener Fonts mittels Metafont}

Falls der Previewer einen zur Anzeige ben\"otigten Font nicht finden kann
und falls die Environtment Variable ``CALLMF'' gestetzt ist, so wird
der Inhalt dieser Environment Variable als Name einer ARexx Script Datei
verwendet.

Diese wird zur Erzeugung des nicht gefundenen Fonts mit folgenden Parametern aufgerufen:

\itemlist{-- }
\next dem Fontnamen des zu erzeugenden Fonts,
\next der Aufl\"osung des Fonts in DPI,
\next der horizontale Grundaufl\"osung, die zur Zeit am Previewer eingestellt ist,
\next der vertikalen Grundauflösung (beim Previewer immer gleich der horizotalen),
\next einer Kennung des aufrufenden Programms,
\next der Name, den der Font bekommen soll und
\next dem Directory, in das der Font kopiert werden soll.
\enditemlist

Es gibt schon zwei solcher Scripten.
Einmal {\tt MakeTeXFont}. Wenn ``CALLMF'' mit dieser Script belegt ist, so
werden alle fehlenden Fonts sofort generiert. Da dies aber manchmal recht lange
dauern kann, gibt es noch die Script {\tt MakeBatch}. Diese Erzeugt die Fonts
nicht sofort, sondern generiert nur ein Scriptfile {\tt MF:MakeTeXFont.sh}.
Mit Hilfe dieser erzeugten Script kann man später einmal alle fehlenden Fonts
erzeugen.

Mehr dazu ist in der Anleitung zu den ``CallMF'' Scripten zu finden.



\section{Konfigurations-Files}

\ShowDVI{} arbeitet mit drei Konfigurations-Files zusammen.
Dies ist zum einen das ``Startup-File''. Dort wird, unter anderem, das Aussehen
des \ShowDVI-Screens festgelegt.

In den beiden anderen wird definiert, wo Fonts und Fontlibraries zu finden sind.
Eines davon ist in einem \ShowDVI/\DVIprint-eigenem Format.

Das andere ist im Amiga\TeX{}\footnote{Amiga\TeX{} ist ein kommerzielles Produkt
von Radical Eye Software}-Format. Dieses wird {\bf nur} im Verzeichnis 
{\tt TeX:pk} gesucht.

Die beiden \ShowDVI{}/\DVIprint{}-eigenen Files werden im Directory {\tt
TeX:config} gesucht. Sie m\"ussen aber nicht unbedingt dort stehen, das
kann mittels der Environment-Variable ``{\tt TEXCONFIG}'' eingestellt
werden. Nach ``{\tt setenv TEXCONFIG ram:,TeX:config}'' werden diese Konfigurations-Files
zum Beispiel erst im Directory {\tt RAM:} und dann im Diretory {\tt TeX:config} gesucht.
Wenn man aber ein Konfiguraionsfile von \ShowDVI\ aus abspeichert
(geht nur mit dem Startup-File), so wird es grundsätzlich in das erste Verzeichnis
abgespeichert. (Außer dies ist eine Schreibgeschützte Diskette)


In den beiden eigenen Definitions-Files gilt die Regel, alles was nach einem ``{\tt ;}''
kommt, wird mitsamt des Strichpunktes ignoriert. Au\ss{}erdem sind
Leerzeichen in File- oder Directory-Namen verboten. Dies gilt nicht nur
f\"ur die Definitions-Files, sondern auch f\"ur die Environment-Variablen.

Das Amiga\TeX-Konfiguration-File {\tt fontvols} wird immer dann eingelesen, wenn ein
Font nicht zu finden ist. Die beiden anderen werden nur einmal zum
Programm Start eingelesen.

\goodbreak



\subsection{Das Startup-File}

Der Name des \ShowDVI{}-Konfigurations-File ist ``{\tt ShowDVI.config}''.

Das File wird vom \ShowDVI-Programm Zeile f\"ur Zeile interpretiert.
Zeilen die mit einem Strichpunkt beginnen, oder vor einem Strichpunkt
nur Spaces oder Tabs haben, werden ignoriert. Alle anderen Zeilen
bestehen aus einem Schl\"usselwort und den dazugeh\"origen Werten.
Danach kann ein Kommentar folgen.

Achtung: Wenn man vom \ShowDVI-Programm aus das Konfigurationsfile
abspeichert, so wird das alte einfach \"uberschrieben. Das hei\ss{}t,
alle per Hand eingef\"ugte Kommentare gehen verloren.

Ein Beispiel f\"ur ein solches Startup-File ist:


\medskip
\goodbreak

\halign{\quad#\quad\hfil&#\hfil&#\hfil\cr
\noalign{\quad; This is a machine generated configuration file for ShowDVI}
color\_0		&10,10,10		&; RGB values of background color		\cr
color\_1		&2,2,2			&; RGB values of foreground color		\cr
color\_2		&13,13,13		&; RGB values of color 2			\cr
color\_3		&13,1,0			&; RGB values of color 3			\cr
scrollbar		&on			&; state of scrollbars				\cr
interlace		&on			&; interlace					\cr
beep			&off			&; beep on warnings				\cr
esc-exit		&off			&; exit prog on ESC				\cr
quick-exit		&on			&; exit prog immediately			\cr %%
popup-menu		&off			&; use pop-up-menu				\cr
int-menu		&off			&; is the pop-up-menu "intelligent"		\cr
big-menu		&on			&; pop-up-menu with topaz 11			\cr
middle-menu		&on			&; use middle-mouse-button			\cr
                        &                       &; for pop-up menu				\cr
physical-numbers	&off			&; on == use physical numbering			\cr
auto-load-again		&on			&; activate window $=>$ load again		\cr
use-four-colors		&on			&; use 4 color screen				\cr
clone-wb-colors		&off			&; clone the wb colors				\cr %%
unit			&in			&; used unit					\cr
application-icon	&on			&; application-icon on/off			\cr
app-icon-name		&TeX:config/AppIcon     &; ".info" file for the app-icon		\cr
app-icon-pos		&0, 0			&; position 0,0 $=>$ use def.\ position		\cr
shell-script		&TeX:s/ShowDVI.sh	&; Script-file (only for OS 2.0)		\cr
arexx-start-script	&rx TeX-server.rexx	&; Script-file, start the TeX-server		\cr
		        &			&; (only with OS 2.0)				\cr
screen-size		&0, 0			&; screen size. 0,0 $=>$ clone wb-size		\cr
screen-mode		&pal			&; screen mode (default $|$ pal $|$ ntsc $|$	\cr
			&			&; productivity $|$ a2024 $|$ workbench)	\cr %
default\_resolution	&100			&; default start resolution			\cr
resolution\_menu	&120,100,91,83,44	&; entries for the resolution menu		\cr
f1			&'rexx:CEDtoFront.sd'							\cr
f2			&rexx:Start\_TeX.sd							\cr
f3			&rexx:Quit\_TeX.sd							\cr
F1			&menu 0 6 3								\cr
F10			&menu 0 0								\cr
}


Die einzelnen Einträge bedeuten dabei folgendes:

\staggered{MMM}
\key{\bf color\_\sl?		\hss}\hfill\break
	Legt die Bildschirmfarben fest.
\key{\bf scrollbar		\hss}\hfill\break
	Sind die Scrollbars nach dem Programmstart angeschaltet?
\key{\bf interlace		\hss}\hfill\break
	Wird der Screen im Interlace-Modus geöffnet?
\key{\bf beep			\hss}\hfill\break
	Sollen wichtige Meldungen mit einem ``DisplayBeep'' unterlegt werden?
\key{\bf esc-exit		\hss}\hfill\break
	Soll die ESC-Taste das Programm beenden oder nur den Screen nach
	hinten legen?
\key{\bf quick-exit		\hss}\hfill\break
	Wenn dieser Punkt aktiviert ``{\tt on}'' ist, so wird kein
	Abfragerequester geöffnet, wenn man das Programm verlassen
	möchte. Statt dessen wird das Programm sofort beendet.
\key{\bf popup-menu		\hss}\hfill\break
	Soll das Pop-Up-Menü anstatt des normalen Amiga-DOS Menü auf der
	rechten Maus Taste liegen?
\key{\bf int-menu		\hss}\hfill\break
	Soll sich das Pop-Up-Menü den letzten Menüpunkt merken?
\key{\bf big-menu		\hss}\hfill\break
	Soll der Font ``{\tt topaz 11} für das Pop-Up-Menü verwendet werden?
\key{\bf middle-menu		\hss}\hfill\break
	Soll das Pop-Up-Menü auf der mittleren Maustaste liegen?
	(Funktioniert nur unter 2.0 und auch nur mit einer Maus, die (mindestens) drei
	Tasten hat.
\key{\bf physical-numbers	\hss}\hfill\break
	Soll das Programm sich nach dem Start gleich im ``phyiscalischen''
	Seitennummerierungsmodus befinden? Siehe dazu auch die Bemerkungen zur Taste `{\tt y}'.
\key{\bf auto-load-again	\hss}\hfill\break
	Soll die Funktion ``auto-load-again'' defaultmäßig eingeschaltet sein?
\key{\bf use-four-colors	\hss}\hfill\break
	Soll der \ShowDVI-Screen mi 4 Farben geöffnet werden?
\key{\bf clone-wb-colors	\hss}\hfill\break
	Soll die Farbwahl der {\tt color\_\sl?} Zeilen ignoriert werden und
	statt dessen die Farben der Workbench übernommen werden.
	Diese Einstellung wird automatisch desaktiviert, wenn man mittels
	des Farb-Requesters die Farbeinstellung ändert und diese abspeichert.
\key{\bf unit			\hss}\hfill\break
	Welche Einheit soll im ``Measure-Window'' verwendet werden?
	Zur Auswahl stehen: {\tt in}, {\tt cm} oder {\tt pt}.
\key{\bf application-icon	\hss}\hfill\break
	Soll auf der Workbench ein Application-Window geöffnet werden?
	Mit diesem kann man durch Doppelklick den \ShowDVI-Screen nach vorne
	holen bzw.\ durch darauflegen eines Icons, dieses File laden.
	(Funktioniert nur unter 2.0)
\key{\bf app-icon-name		\hss}\hfill\break
	Vollständiger Pfad eines Info-Files, welches das Aussehen des App-Icons
	festlegt.
\key{\bf app-icon-pos		\hss}\hfill\break
	Wo auf der Workbench soll das Icon positioniert werden?
	Es ist allerdings empfehlenswert hier die Werte 0 zu belassen, da sich
	dann die Workbench selbst einen möglichst guten Platz für das Icon überlegt.
	Dann kann es nicht vorkommen, daß dieses icon über ein anderes gelgt wird.
\key{\bf shell-script		\hss}\hfill\break
	Pfadname einer Shell-Script, die mit dem '{\tt r}' Kommando ausgeführt wird.
	(Funktioniert nur unter 2.0)
\key{\bf arexx-start-script	\hss}\hfill\break
	Aufruf einer ARexx-Script, die die Zusammenarbei Editor -- virtex -- Previewer
	steuert.
\key{\bf screen-size		\hss}\hfill\break
	Legt die Screen-Größe fest. Normalerweise sollten die Werte auf 0 stehen.
	Dann verwendet \ShowDVI\ die Größe des Workbench-Screens. (Unter 2.0 wird
	der Text-Overscan ausgewertet) Stehen dort Werte ungleich Null und läuft das
	Programm unter 2.0, so wird der Screen mit dem Tag {\tt AUTOSCROLL} geöffnet.
	Dies bedeutet, daß man den Screen größer als den sichtbaren Bereich machen kann.
	Man scrollt dann mittels der Maus.
\key{\bf screen-mode		\hss}\hfill\break
	In welchem Modi soll der Screen geöffnet werden? Zur Auswahl stehen:
	{\tt PAL}, {\tt NTSC}, {\tt productivity}, {\tt A2024}, {\tt default} und {\tt workbench}.
	Bei {\tt A2024} legt `Interlace' fest, ob im 10HZ oder 15Hz Modus
	gearbeitet werden soll. Bei {\tt default} bestimmt die Hardware des Rechners, ob
	ein PAL oder NTCS Screen verwendet wird. Wenn {\tt workbench} angegeben wurde, so
	wird der Screen-Mode des Workbench-Screens übernommen. Babei wird auch die
	Interlace-Einstellung übernommen. D.h.\ falls als Screen-Mode {\tt workbench} 
	gesetzt wurde, so wird die {\tt interlace} Einstellung ignoriert.
	(Funktioniert nur unter 2.0)
\key{\bf default\_resolution	\hss}\hfill\break
	Mit welcher Auflösung soll normalerweise das Programm gestartet werden.
\key{\bf resolution\_menu	\hss}\hfill\break
	Welche Einträge soll das Resolution-Menü haben? Es können maximal
	10 Auflösungen angegeben werden.
\key{\bf f1			\hss}\hfill\break
	Belgt die Funktionstaste F1 (ohne SHIFT) mit dem nachfolgenden Text.
\key{\bf F1			\hss}\hfill\break
	Belgt die Funktionstaste F1 (mit SHIFT) mit dem nachfolgenden Text.
\key{\bf f9			\hss}\hfill\break
	Belgt die Funktionstaste F9 (ohne SHIFT) mit dem nachfolgenden Text.
\endstaggered

Mit dem Men\"upunkt {\tt save config} oder der Tastatursequenz
AMIGA-{\tt W} wird der derzeitige Zustand abgespeichert.
Dazu gehören z.B.\ die verwendeten Farben, die gewählte Auflösung,
der Zustand der Scrollbars usw.



\subsection{Das Fontdefinitions-File}

In diesem File k\"onnen zus\"atzliche Angaben gemacht werden, wo einzelne
Fonts oder bestimmte Fontlibraries zu finden sind.
Der vollst\"andige Suchpfad wird im n\"achsten Kapitel ``Internas''
noch genau erl\"autert.

Das Fontdefinitions-File wird normalerweise in {\tt TeX:config} gesucht.
Man kann dieses Directory aber auch mit der Variable {\tt TEXCONFIG}
\"uberschreiben. In dieser Variable kann man auch einen Suchpfad definieren.
Der Name des Konfigurations-Files ist {\tt showdvi.fnt}.

Nun zum Aufbau dieses Files. Hier ein Beispiel:
$$\vbox{
\halign {\quad#\hfil&#\hfil\quad&#\hfil\quad&#\hfil\quad&#\hfil\cr
flibenv    &     &dir1 dir2    &            &; directories with flib's\cr
pkenv      &     &dir1 dir2    &            &; directories with pk-files\cr
\cr
basepkdir\_str  &&\%d/\%s.\%dpk&	    &; formatstring for pk-dir's\cr
flib\_str  &     &PK\%04d      &            &; formatstring for flib's\cr
pk\_str    &     &\%d/\%s.\%dpk&            &; formatstring for pk-files\cr
pkdir\_str &     &\%s.pk       &            &; formatstring for pk-files\cr
	   &     &             &            &; which are in pkdir\cr
\cr
basepkdir  &	 &hdpi vdpi    &directory   &; two args\cr
flib       &     &dpi          &directory   &; two args\cr
font       &font &dpi          &directory   &; three args\cr
pkdir      &     &hdpi vdpi    &directory   &; two args\cr
\cr
basepkdir  &     &300 300      &TeX:PrtFonts&; example\cr
flib       &     &100          &ram:fastflib&; example\cr
font       &cmr10&100          &ram:fastpk  &; example\cr
pkdir      &     &109 109      &TeX:pk/110  &; example\cr
pkdir      &     &110 110      &TeX:pk/110  &; example\cr
}}$$

Mit den ersten zwei Schl\"usselw\"ortern kann man zus\"atzliche
Directories definieren, in denen entweder nach Fontlibraries, oder nach
PK-Fonts gesucht werden sollen. Von der Funktion her entsprechen diese
beiden Zeilen den Environment Variablen {\tt FLIBDIR} und {\tt PKDIR}.
Mehr dazu im Kapitel 7.1.

Die n\"achsten vier Zeilen definieren wie jeweis der Fontname gebildet werden soll.
Als Argument wird dabei ein Format String nach C Art angegeben.

Dabei k\"onnen folgende Modifier angegeben werden.
\itemlist {-- }
\next ``\%s'' steht f\"ur den Font Namen (z.B.\ cmr10),
\next ``\%d'' steht f\"ur die aktuelle dpi-Zahl,
\next ``\%h'' steht f\"ur die dpi-Aufl\"osung in horizontaler Richtung
		(entspricht ``\%d''),
\next ``\%v'' steht f\"ur die dpi-Aufl\"osung in vertikaler Richtung,
\next ``\%x'' ist eine \"altere Einheit, entspicht der horizontalen dpi
		mal f\"unf,
\next ``\%y'' wie ``\%x'' nur f\"ur die vertikale Aufl\"osung,
\next ``\%\%'' steht schlie\ss{}lich f\"ur ein ``\%'' Zeichen.
\enditemlist

Die ``\%h'' ``\%v'' ``\%x'' ``\%y'' Modifier sind f\"ur den Previewer
nicht so sehr von Bedeutung. Sie werden vor allem f\"ur nicht quadratische
Fonts (z.B. die Epson FX-80 Fonts) ben\"otigt.

Die drei Format-Strings der obigen Tabelle sind auch gleichzeitig der 
jeweilige Default-Wert des Programms.

Insgesamt ist der Formatstring vollst\"andig C-kompatibel.
Beispiele hierzu:\par
$$\vbox{
 \halign {\strut
  \vrule\vrule#&\tabskip = 5pt % linker Strich
        \hskip 2pt#       &  % erste Spalte  pk fmt
  \vrule#&   % Strich
        #       &   % zweite Spalte  flib fmt
  \vrule#&   % Strich
        #       &   % dritte Spalte  dpi
  \vrule#&   % Strich
        #       &   % vierte Spalte  name
  \vrule#&   % Strich
        #       &   % fuenfte Spalte flib
  \vrule#&   % Strich
        #       &\tabskip = 0pt % sechste Spalte font
  \vrule\vrule#   % rechter Strich
  \cr
 \noalign{\hrule}
 \noalign{\hrule}
 & Flib-fmt && PK-fmt && dpi && Name && Flib && Font &\cr
 \noalign{\hrule}
 & PK\%04d && \%d/\%s.\%dpk && 100 && cmr10 && PK0100 && 100/cmr10.100pk &\cr
 & PK\%d && \%s.\%d && 83 && cmbx8 && PK83 && cmbx8.100 &\cr
 & \%x.lib && \%s/\%d && 360 && lasy8 && 1800.lib && lasy/360 &\cr
 \noalign{\hrule}
 \noalign{\hrule}
}}$$

Die Zeilen, die mit ``basepkdir'' beginnen, definieren ein Directory, in dem
ein gesamter Satz von zusammengehörenden Fonts (alle Vergrößerungsstufen)
zusammengefaßt sind. Mit ``{\tt baspkdir 300 300 TeX:PrtFonts}'' definiert man
also, daß alle Fonts, die auf der (quadratischen) Grundauflösung 300dpi basieren
(z.B.\ auch die Magstep 1 Fonts mit 360dpi), sich in dem Directory
{\tt TeX:PrtFonts} befinden. Hat man allerdings als eingestellte Grundauflösung
360dpi und sucht einen Magstep 0 Font (also mit 360dpi), so wird {\bf nicht}
in diesem Directory gesucht. Bei quadratischen Fonts kann man die vertikale Auflösung
auch weglassen.

Der erste ``basepkdir'' Eintrag zu einer bestimmten Auflösung hat auch noch 
zwei Sonderfunktionen. Zum einen wird dieses Direktory den CallMF ARexx Scripten mit
übergeben, wenn diese einen fehlenden Font generieren sollen. Zum anderen
wird, falls ein Font nur über das ``fontvols'' File (Font-Caching) gefunden
wurde, in das durch das erste passende ``basepkdir'' kopiert. Somit ist es
also möglich, die Fonts, gehörend zu den verschiedenen Druckern/Auflösungen
in verschiedene Directories aufzuteilen, und diese Aufteilung wird auch bei
der Generation neuer Fonts, oder bei dem Kopieren von Fonts, beibehalten.

Die Fonts auf den ``fontvols'' Disketten werden im übrigen mit dem Formatstring
gesucht, den der erste passende ``{\tt basepkdir}'' Eintrag hat. Falls es keinen
passenden ``{\tt basepkdir}'' Eintrag gibt, so wird def default Formatstring für
pk-Files genommen.

Die Zeilen mit dem Schl\"usselwort ``flib'' definieren einzelne Fontlibraries und
in welchen Directories sie sich befinden.
Nach {\tt flib} kommen zwei Parameter: zuerst eine Zahlenangabe
f\"ur die DPI der Fontlibrary, danach das Directory, in dem die Fontlibrary
zu finden ist.

\"Ahnlich sind die Zeilen mit dem Schl\"usselwort ``font'' aufgebaut.
Diesmal sind drei Parameter anzugeben. Der erste Parameter gibt den
Font-Namen an, wie er in einem \TeX-File definiert ist. Danach kommen die
DPI-Angabe und das Directory, in welchem der Font zu finden ist.
Auch hier wird nur ein einziges Object definiert (ein einziger Font).

Die Zeilen, die mit ``pkdir'' beginnen, dienen vor allem dazu, ein und den selben
Fonts f\"ur verschiedene Aufl\"osungen zu benutzen. Wird ein Font in einem
dort definierten Directory gesucht, so wird der Formatstring ``pkdir\_str''
verwendet. In dem Beispiel von oben w\"urde der Font {\tt cmr10} sowohl
in der Aufl\"osung 109 dpi als auch in 110 dpi im Directory {\tt TeX:pk/110}
unter dem Namen {\tt cmr10.pk} gesucht werden (falls er nicht schon vorher in
einer Fontlibrary oder als ``normaler'' PK-Font gefunden wurde).


Zu beachten sind auch noch zwei Feinheiten. Zum einen wird die
Reihenfolge der Aufschreibung im File {\it innerhalb einer} Gruppe
von Eintr\"agen (z.B.\ alle {\tt flib} Eintr\"age) beim Suchen nach
Fonts ber\"ucksichtigt. Man kann also z.B.\ mehrere Fontlibraries der
selben Aufl\"osung definieren und mit der Reihenfolge bestimmen,
welche zuerst abgesucht werden soll.

Eine weitere Besonderheit ist, dass man die Format-Strings mehrfach definieren
kann. Verwendet wird dann immer der zu letzt definierter String.

Ein Beispiel:

\halign {\quad#\quad&#\quad&#\quad&#\qquad\hfil			\cr
flib\_str &PK\%04hx\%04v  &&; wegen unsymetrischen Fonts	\cr
flib      &120 &TeX:fontlib&; verwende Format String von oben	\cr
flib      &131 &TeX:fontlib&; ebenso				\cr
flib\_str &PK\%04d  &&; setzt Format-String zur\"uck		\cr
flib      &100 &TeX:fontlib&; verwendet den neuen Format-String \cr
}

Die ersten zwei definierten Fontlibraries verwenden nun den Format-String
mit der horizontalen und vertikalen Aufl\"osung. Die dritte definierte
Library und {\it alle}, die noch bei der Suche nach Fonts w\"ahrend
des Programmlaufs definiert werden, verwenden den zweiten definierten
Format-String.



Von gro\ss{}em Nutzen ist dieses Definitions-File vor allem f\"ur Benutzer mit
beschr\"anktem Plattenplatz. Man kann sich zuerst heraussuchen, welche
Fonts unbedingt ben\"otigt werden. Eine gro\ss{}e Hilfe dabei ist das Logfile,
das jeden ben\"otigten Font auflistet. Man erstellt dann f\"ur jede
ben\"otigte Aufl\"osungsstufe eine Fontlibrary, in der die zuvor ermittelten
Fonts hineingepackt werden. Diese werden auf die Festplatte kopiert.
Die vollst\"andigen Fontlibraries kann man auf Diskette halten oder,
falls sie zu gro\ss{} sind, auf mehrere Disketten verteilen.
Wenn man alle Libraries explizit definiert, werden die Fonts in der
Reihenfolge, wie sie aufgef\"uhrt sind, im File gesucht.
Zuerst also auf Platte und -- wenn dort nicht vorhanden -- auf der
Diskette, die man angegeben hat.

Einzelne Fonts zu definieren kann f\"ur Besitzer von METAFONT
von gro\ss{}em Nutzen sein. M\"ochte man zum Beispiel den Font {\tt cmr10} neu
erzeugen, so braucht man ihn nicht schon w\"ahrend der Testphase aus
allen Fontlibraries zu l\"oschen und neu einzutragen. Statt dessen definiert man
den Font im Definitions-File. Da dieser dann zuerst gefunden wird,
ber\"ucksichtigt \ShowDVI den gleichnamigen Font in den Fontlibraries
nicht.

M\"ochte man sein Fontdefinitions-File \"uberpr\"ufen, so sollte man
\ShowDVI{} mit der Option {\tt STAT} starten. Vor dem Programmende wird das
Definitions-File mit Kommentaren (gebraucht/gefunden/nicht gefunden)
in das Logfile geschrieben.




\subsection{Das Font-Caching Konfigurations-File}

Wenn ein Font nach allen bisherigen Versuchen immer noch nicht gefunden wurde,
dann wird das Font-Caching\footnote{Dieses File ist kompatibel zu dem gleichnamigen
Amiga\TeX\ Konfigurationsfile}
Konfigurations-File {\tt fontvols} zu Rate gezogen.

Dieses besteht aus mehreren Zeilen mit folgendem Format:

\centerline{\it Volume-Name\tt =\it base-dpi\tt d.\it dpi$_1$\tt .\it dpi$_2$
\tt .$\ldots$\tt .\it dpi$_n$}

``Volume-Name'' ist der Name einer Diskette.

``base-dpi'' gibt die Grundauflösung an, zu der die Fonts dieser Diskette gehören.
Damit kann man bei Überschneidungen verschiedener Fontgruppen (z.B.\ der Satz
300dpi Fonts und der Satz 360dpi Fonts überschneiden sich) festlegen, zu welcher
Grundauflösung diese Fonts gehören. (z.B. sind dies 360dpi Fonts eine Diskette 300dpi Fonts der
Vergröserung {\sl magstep1} oder sind es 360dpi Fonts der Vergröserung {\sl magstep0}.
Falls man diese Unterscheidung nicht treffen möchte, kann man als ``base-dpi'' auch
``{\tt 0}'' angeben. Dann wird immer verglichen, ob in dieser Zeile die gesuchten
Einträge sind. Dies ist vor allem bei \ShowDVI{} sehr sinnvoll, da man dort ja mit
vielen verschiedenen Auflösungen arbeiten kann. Dort provoziert man auch möglichst
viele Überschneidungen, um mit möglichst wenigen Fonts die Texte in möglichst vielen
verschieden Auflösungen anzeigen zu können.

Die einzelnen ``dpi''-Werte geben an, in welchen Aufl\"osungen Fonts auf
der Diskette zu finden sind.

Sowohl bei der ``base-dpi'' als auch bei den einzelnen ``dpi''-Werten kann auch
horizontale und vertikale Auflösung getrennt angegeben werden. So steht ``{\tt 360x180}''
für eine horizontale Auflösung von 360dpi und eine vertikale Auflösung von 180dpi.
Nur ``{\tt 360}'' steht für die quadratische Auflösung von 360dpi sowohl für die horizontale
als auch die vertikale Auflösung. ``{\tt 360x360}'' und ``{\tt 360}'' sind also identisch.
\hfill\break
(Achtung: hier wird {\bf nur} ein kleines `{\tt x}' akzeptiert.)


Ein kurzes Beispiel:\parwithoutskip
Mit ``FontDisk=000d.131.207'' wird definiert, da\ss{} es eine Diskette mit
dem Namen ``FontDisk:'' gibt, die zwei Directories enth\"alt.
Zum einen das Directory ``FontDisk:131'' mit den Fonts der Aufl\"osung
131dpi, und zum anderen das Directory ``FontDisk:207'', in dem die
ausgelagerten Fonts der Gr\"o\ss{}e 207dpi zu finden sind.
Da ``base-dpi'' auf Null gesetzt ist, wird immer, egal bei welcher Grundauflösung,
dieser Eintrag ausgewertet.

Eine Aufl\"osung darf dabei mehrfach auftreten. Die Suchreihenfolge ist
von oben nach unten und von links nach rechts.


Dieses Konfigurationsfile wird zuerst in ``{\tt TeX:config}'' und dann in
``{\tt TeX:pk}'' gesucht. Das Directory ``{\tt TeX:config}'' kann mit der
Environmentvariable {\tt TEXCONFIG} überschrieben werden.
Nach ``{\tt setenv TEXCONFIG .,ram}'' wird das File also zuerst
im aktuellen Direktory, dann in {\tt RAM:} und schließlich in {\tt TeX:pk}
gesucht.


Wird ein Font mit Hilfe des ``{\tt fontvols}'' File gefunden, so wird es automatisch
in das der Grundauflösung zugehörigen {\tt baspkdir} oder, falls nicht definiert, nach
{\tt TeX:pk} kopiert. Dies macht dieses File äußerst interessant. Ist es doch damit möglich,
alle Fonts auf mehreren Disketten zu halten und nur die Fonts, die wirklich gebraucht
werden, werden in das der Grundauflösung zugeordnetem Verzeichnis kopiert.
Dies erfordert die ersten paar Mal einiges an Diskettenwechsel, 
spart aber erheblich an Festplattenplatz!

Die Fonts auf den ``fontvols'' Disketten werden im übrigen mit dem Formatstring
gesucht, den der erste passende ``{\tt basepkdir}'' Eintrag hat. Falls es keinen
passenden ``{\tt basepkdir}'' Eintrag gibt, so wird def default Formatstring für
pk-Files genommen. Mit Hilfe dieses Formatstrings werden die kopierten Fonts
auch angelegt.


\section{``2.0'' Features}

Einige Besonderheiten des neuen AMIGA Betriebssystem konnten schon
in dieser Version ber\"ucksichtigt werden. Sie sind schon an der jeweilig passenden
Stelle innerhalb dieser Anleitung erw\"ahnt worden, sollen hier aber noch einmal
kurz zusammen gefa\ss{}t werden.


\subsection{Screen Modis}

Es werden alle mir bisher bekannten AMIGA Screen-Modis unter 2.0 unterst\"utzt\footnote{%
Abgesehen von den mehrfarbigen wie HAM usw.}.

Diese sind: {\it PAL, NTSC, Productivity (VGA) und A2024}\footnote{Der A2024 Modus ist
nicht getestet, da ich keinen solchen Monitor besitze.}

Diese Modi k\"onnen entweder im {\it interlace} oder {\it non-interlace}
Verfahren verwendet werden. Bei der A2024 Einstellung bedeutet diese die
Unterscheidung zwischen der 10 Hz und der 15 Hz Aufl\"osung.

Ausgew\"ahlen kann man den gew\"unschten Monitor und Aufl\"osung \"uber das 
Konfigurationsfile. Siehe dazu Kapitel 6.1.

Unter 2.0 wird die entg\"ultige Aufl\"osung noch \"uber den {\tt Text-Overscan}
ermittelt. Diese kann \"uber die Preferences eingestellt werden.

Falls im Konfigurationsfile eine feste Größe für den Screen angegeben wurde,
so wird der Screen mit dem {\tt AUTOSCROLL} Flag geöffnet. Das heißt, daß der
Screen automatisch gescrollt wird, falls er größer als der sichtbare Bereich ist und
man mit der Maus an den Rand fährt.



\subsection{Public Screen}

Eine der herausstechensten Eigenschaften des neuen Betriebssytem ist sicherlich
die ``Public-Screen'' Verwaltung. Nun wurde es möglich gemacht, daß verschiedene
Applicationen sich den selben Screen teilen können. Man muß lediglich den Namen
des Screen kennen. Der Name des \ShowDVI-Screens ist {\tt ShowDVI-PubScr}.
Man kann nun zum Beispiel ganz einfach ein CON: Window auf dem \ShowDVI-Screen
öffnen. Es reicht nur die Angabe von:

{\tt\ \ \ \ "CON:0/0/300/100/Title/SCREEN ShowDVI-PubScr/CLOSE"}

Das \ShowDVI\ Programm verwendet diese Möglichkeit selbst immer, um ein
Ausgabefenster für ein externes Programm/Shell zu öffnen.


\subsection{Application Icon}

Das Application-Icon ist eine sehr praktische Einrichtung f\"ur Leute,
die gerne mit der Workbench arbeiten. Man kann nun von der Workbench
per Maus durch Doppelklick auf das Icon \ShowDVI{} nach vorne holen
oder durch Ziehen eines Icons auf dieses Icon ein neues DVI-File laden.

Das Aussehen des Application-Icons wird über ein Info-File festgelegt.
Der Name dieses Info-Fieles wird im konfigurationsfile festgelegt.
Per Default wird das File {\tt TeX:config/AppIcon.info} verwendet.

Die Lage des Icons kann (wenn man unbedingt möchte) auch festgelegt werden.
Dazu diehnt der Konfigurationseintrag {\tt app-icon-pos}. Wenn dort
zweimal '0' steht, so wählt die Workbench selbst einen Platz für das Icon.



\goodbreak


\section{Internas}

Dieses Kapitel soll nun die eine oder andere Hintergrundinformation \"uber
die Funk\-tions\-weise von \ShowDVI{} vermitteln. Diese Informationen werden
zum einfachen Gebrauch des Programms zwar nicht unbedingt ben\"otigt,
k\"onnen aber recht n\"utzlich sein.


\subsection{Environment-Variablen}

Es werden nur die von Commodore unterst\"utzten ENV: Environment
Variablen verwendet.

Folgende Variablen werden verwendet:
\staggered{TEXCONFIG }
\key{SHOWDVI } In dieser Variable können Kommandline-Optionen abgespeichert werden,
	die ständig benötigt werden.
\key{TEXCONFIG } Liste von Pfaden, in denen nach den Konfigurationsfiles gesucht wird.
\key{FLIBDIR } Liste von Pfaden f\"ur das Finden von Fontlibraries.
\key{PKDIR } Liste von Pfaden f\"ur das Finden von PK-Fonts.
\key{CALLMF }
	wenn diese Variable gesetzt ist, wird bei einem
	nicht gefundenen Font die ARexx Script aufgerufen, deren Name
	in der Environment Variable steht.
\endstaggered

Eine Liste von Pfaden besteht aus mehreren Directories getrennt durch
``{\tt ;}'' oder durch ``{\tt ,}''. Zum Beispiel:
$$\hbox{\tt ram:dir1,df1:dir2,fonts:}$$
Leerzeichen innerhalb von Directories sind nicht erlaubt.


\subsection{Verwendete Files}

Folgende Files werden von \ShowDVI{} verwendet:

\staggered{ShowDVI.config }
\key{ShowDVI.config} Konfigurationsfile für das allgemeine Aussehen und Verhalten
	von \ShowDVI{}.
\key{ShowDVI.fnt} Fontdefinitionsfile, das bei der Suche nach Fonts hilft.
\key{ShowDVI.help} Hilfefile für die ``On-Line'' Hilfe. In ihm stehen
	die Erkärungen zu allen Menüpunkten und die Hilfeseiten des about/help
	Fensters.
\key{ShowDVI.log} Logfile in dem \ShowDVI{} diverse Dinge mitprotokolliert.
	Der Name (und Pfad) des Files kann mit der Option {\tt logname}
	geändert werden.
\key{fontvols} Font-Caching File. Hier wird definiert, auf welchen Disketten
	welche Fontvergrößerungen abgelegt sind.
\endstaggered

Die Namen und Pfade weiterer verwendeter Files werden in dem File ``ShowDVI.config''
definiert.



\subsection{Font-Such-Pfade}

Eines vorweg: das Programm bevorzugt nach M\"oglichkeit immer die
Fontlibraries, die meiner Meinung nach viele Vorteile haben.

Das sind (kurz zusammengefa\ss{}t):
\itemlist{\qquad-- }
\next sie sparen einiges an Speicherplatz
\next auf sie kann schneller zugegriffen werden
\next die Directory-Struktur ist \"ubersichtlicher
\enditemlist

Aber das Programm kann auch gänzlich ohne Fontlibraries arbeiten.
Es ist also kein Zwang, sich solche Libraries zuzulegen. Nur in
der Suchreihenfolge werden die Fontlibraries bevorzugt.

Wo werden die Fonts gesucht? \parwithoutskip
Startet man \ShowDVI{} ohne weitere
Vorbereitungen, so werden Fonts zuerst innerhalb von Fontlibraries in
{\tt TeX:FontLib} und dann als eingenst\"andiges PK-File in {\tt TeX:pk}
gesucht. Der jeweilige Filename wird nach folgenden Format Strings
ermittelt:
\staggered{\tt \ \%d/\%s.\%dpk }
\key{\tt \ PK\%04d} f\"ur die Fontlibraries, und
\key{\tt \ \%d/\%s.\%dpk} f\"ur die eigenst\"andigen PK-Files.
\endstaggered
Wie schon im Kapitel \"uber das Fontdefinitions-File gesagt, k\"onnen
diese Formatstrings nat\"urlich auch umdefiniert werden.

Als erste M\"oglichkeit der Umkonfigurierung bieten sich zwei
Environment-Variablen an. Mit {\tt FLIBDIR} k\"onnen weitere Directories
definiert werden, in denen sich Fontlibraries befinden und mit {\tt PKDIR}
Directories in denen PK-Files gefunden werden k\"onnen. Nach

\qquad{\tt setenv FLIBDIR DH0:flib1,DH1:flib2,FlibDisk:}\parwithoutskip
\qquad{\tt setenv PKDIR DH0:pk1,PKDisk:}

wird ein Font in folgenden Directories gesucht:
\itemlist{\qquad-- }
\next {\tt DH0:flib1}, innerhalb einer Fontlibrary.
\next {\tt DH1:flib2}, innerhalb einer Fontlibrary.
\next {\tt FlibDisk:}, innerhalb einer Fontlibrary.
%%\next {\tt TeX:FontLib}, innerhalb einer Fontlibrary.
\next {\tt DH0:pk1}, als eigenst\"andiges PK-File.
\next {\tt PKDisk:}, als eigenst\"andiges PK-File.
%%\next {\tt TeX:pk}, als eigenst\"andiges PK-File.
\next Wurde der Font nun immer noch nicht gefunden, so wird im File
 {\tt TeX:pk/fontvols} nach einer Diskette gesucht, auf der der Font
 noch sein k\"onnte.
\enditemlist

%% neu in Version 1.07
Wurde mittels der Environmentvariable {\tt FLIBDIR} oder dem Eintrag 
{\tt flibenv} im Konfigurationsfile ein Suchpfad f\"ur Fontlibraries
definiert, so wird der Defaulteintrag {\tt TeX:fontlib} gel\"oscht.
Falls also dieses Directory ben\"otigt wird, so mu\ss{} man es selbst
in die Liste mit aufnehmen. Dadurch kann man zur Not auch v\"ollig
ohne das Assign {\tt TeX:} arbeiten.

Das selbe gilt f\"ur {\tt PKDIR} und {\tt pkenv}.

Falls in der Kommandozeile mit der {\tt fontdir} Option noch ein weiteres
Directory angegeben wurde, so wird dieses jeweils vor dem
aktuellen Directory durchsucht. In dem Directory wird also vor dem
{\tt TeX:FontLib}-Directory nach einer passenden Library gesucht
und wenn bis zum Ende der Suchliste der Font immer noch nicht
gefunden wurde, so wird vor dem {\tt TeX:pk}-Directory noch in
dem Directory, das nach der {\tt fontdir} steht, Option gesucht.

Reichen diese M\"oglichkeiten immer noch nicht aus, so k\"onnen innerhalb des
Fontdefinitions-File Fontlibraries und Fonts auch noch einzeln definiert
werden.

Dabei wird dann folgende Suchreihenfolge angewand:
\itemlist{\qquad-- }
\next Als erstes wird in der Liste der einzeln definierten Fonts gesucht.
\next Danach wird in der Liste der vordefinierten Fontlibraries nach
      Libraries der korrekten DPI-Zahl und innerhalb dieser nach dem
      Font gesucht.
\next Falls der Font noch nicht gefunden wurde, so werden jetzt die
      Flib-Directories abgesucht. Definiert werden diese mit
      der Environment Variable {\tt FLIBDIR} und dem Eintrag {\tt flibenv}
      des Fontdefinitionsfiles.
\next Nun wird in der Liste der PK-Directories nach dem passenden
      PK-File gesucht. Diese Liste kann ge\"andert werden mittels
      der Environment Variable {\tt PKDIR} und dem Eintrag {\tt pkenv}
      des Fontdefinitionsfiles.
\next Als vorletzter Versuch den Font doch noch zu finden werden als n\"achstes
      die \"uber den {\tt pkdir} Eintr\"agen definierten PK-Directories
      abgesucht.
\next Zu guter letzt wird das File {\tt TeX:pk/fontvols} zu Rate gezogen.
      Falls der Font damit doch noch gefunden wurde, so wird dieser nach
      {\tt TeX:pk} kopiert. Dies nennt man auch {\it Font-Caching}, da man so
      seine Fonts einfach alle auf Diskette halten kann und nur die, die
      wirklich ben\"otigt werden, werden in den {\tt TeX:pk} Bereich kopiert.
      Siehe dazu auch Kapitel 7.3.
\enditemlist

Falls alle diese Versuche, einen Font zu finden, fehlschlagen und die
Environment Variable ``CALLMF'' mit einem ARexx-Scrip Namen belegt
ist, so wird diese Script mit den drei Parametern ``Font Name'', ``Font 
Aufl\"osung'' und ``Grund Aufl\"osung'' aufgerufen. Sobald diese Script
mit dem Return-Code Null beendet ist, wird der gesamte Such-Algorithmus
noch einmal durchlaufen. Falls also diese Script den Font mittels
Metafont erzeugt hat, braucht so ihn lediglich an einen beliebigen
Ort innerhalb des Suchraumes zu kopieren, und ShowDVI verwendet ihn
sofort.



\subsection{Font-Caching}

Ebenfalls von Amiga\TeX{} \"ubernommen wurde die Idee des ``Font-Caching's''.
Wurde ein Font erst mittels des {\tt fontvols}-File auf einer Diskette
gefunden, so wird dieser in das der Grundauflösung zugeordnetem
``basepkdir''-Directory oder in das {\tt TeX:pk} Directory kopiert.
Dies erleichtert vor allem Benutzern, die ohne -- oder
sehr wenig -- Plattenplatz auskommen m\"ussen, die Auswahl der Fonts, die
sie unbedingt schnell bereit haben m\"ussen.

Ein \TeX-Benutzer, der lediglich zwei Diskettenlaufwerke und keine
Festplatte besitzt, kann sich dann folgenderma\ss{}en helfen:

Auf eine Diskette kommt die Workbench mit den ben\"otigten Programmen wie
{\tt virtex} und {\tt showdvi}. Auf die zweite Diskette sollten
die tfm-Files und die von {\tt virtex} ben\"otigte Format-Datei kopiert werden.
Dazu kommt ein Directory mit Fontlibraries, die nur die wirklich st\"andig
ben\"otigten Fonts enthalten. Au\ss{}erdem mu\ss{} auf dieser Diskette
ein Verzeichni\ss{} {\tt TeX:pk} existieren, in der die
{\tt fontvols}-Datei steht. In dieser sind alle  Disketten
aufgef\"uhrt, die PK-Files enthalten.

Wird nun ein Font nicht auf der Arbeitsdiskette gefunden, so wird die
n\"otige Zusatzdiskette angefordert und der Font in das Directory {\tt
TeX:pk} kopiert. Beim n\"achsten mal ist dieser Font also sofort
verf\"ugbar. Haben sich nun nach einiger Zeit mehrere Fonts in {\tt
TeX:pk} angesammelt, so k\"onnen sie mit Hilfe des Fontlibrary-Programms
{\tt flib} in die Fontlibraries eingetragen werden. Dies hat den Vorteil,
da\ss{} sie dann etwas weniger Platz auf der Diskette
ben\"otigen\footnote{ im Durchschnitt 768 Bytes pro PK-File} und der
Zugriff auch etwas schneller geht.



\subsection{Font-Speicher}

Um einen m\"oglichst schnellen Seitenwechsel zu erm\"oglichen, werden
die schon geladenen Fonts im RAM gehalten. Dies wird solange praktiziert,
bis der daf\"ur reservierte Speicherbereich voll ist. Danach wird nach
der LRU\footnote{last recently used}-Methode der Font, der am l\"angsten
nicht mehr ben\"otigt wurde, aus dem Speicher entfernt.

Es kommt nat\"urlich auf den eigenen Rechner und seinen Speicher an, um
festzulegen, wieviel Speicherplatz man f\"ur die Fonts opfern kann und m\"ochte.

Mit der Option {\tt HELP} kann der Default-Wert abgefragt und mit
{\tt FONTMEM=}{\it bytes} beim Aufruf auf einen beliebigen Wert gesetzt werden.

Um den f\"ur den eigenen Rechner optimalen Wert zu finden, ist
auch hier das Logfile eine gro\ss{}e Hilfe. Dort wird hinter jedem Eintrag
f\"ur einen geladenen Font die prozentuale Auslastung
des Font-Speichers angegeben.


\subsection{Seitenbitmap -- Aufl\"osungen}

Damit das Scrollen innerhalb einer Seite m\"oglichst fl\"ussig ist,
wird die gesamte Bitmap der aktuellen Seite im CHIP-RAM
gehalten. Da das CHIP-RAM leider recht beschr\"ankt ist, ergibt sich so
auch eine Beschr\"ankung der verwendbaren Aufl\"osungen. Normal gro\ss{}e
Seiten kann man noch mit etwa 180 DPI anzeigen, wenn sonst nicht mehr viel
CHIP-RAM ben\"otigt wird. Bei mir sind dann noch etwa 5 kB CHIP-RAM (von
512 kB) frei.

Die Gr\"o\ss{}e des \ShowDVI{}-Screens h\"angt von der Gr\"o\ss{}e des
Workbench-Screens ab. Wurde die Workbench im Overscan-Modus gestartet, so
richtet sich auch \ShowDVI{} danach. Ist der Workbench-Screen im
Noninterlace-Modus und soll der \ShowDVI{}-Screen im Interlace-Modus
ge\"offnet werden, so wird die Y-Aufl\"osung der Workbench verdoppelt.


\subsection{Ausdruck einer Seite}

Da intern die Seite als RastPort abgelegt ist, kann sie nat\"urlich sehr
einfach mit dem io\_Command {\tt PRD\_DUMPRPORT} ausgedruckt werden.
Da diese \"uber den in den Preferences eingestellten Druckertreiber
funktioniert, kann man auch mit jedem graphikf\"ahigen Drucker diese
Funktion verwendet werden. Allerdings ist die Qualit\"at des Drucks nicht
so besonders gut, da \ShowDVI{} mit einer geringen Aufl\"osung
arbeitet. Mit 1 MB CHIP-RAM m\"u\ss{}te man mit bis zu 300 DPI drucken
k\"onnen.

Einen noch nicht fertigen Ausdruck erkennt man daran, da\ss{} rechts oben in der
Window-Titelzeile ein ``P'' steht. W\"ahrend dessen kann weder die aktuelle Seite
verlassen noch ein neues DVI-Files geladen werden.
Abgebrochen kann ein laufender Ausdruck mit dem Men\"upunkt oder der
Taste, mit der er gestartet wurde.



\subsection{Taskname und Signale}

Der Taskname des Programms wird sofort nach Programmbeginn auf
``ShowDVI-Task'' gesetzt. Zuvor wird allerdings noch gepr\"uft, ob es schon
eine Task mit diesem Namen gibt. Wenn ja, so wird dieser ein
Ctrl-E-Signal geschickt. Dieses bringt das andere \ShowDVI{}-Programm dazu,
seinen Screen nach vorne zu holen und sein Fenster aktiv zu machen. Das
soeben gestartete \ShowDVI{}-Programm beendet sich nach dem Versenden des
Signals sofort\footnote{Daraus folgt, da\ss{} immer nur ein
\ShowDVI{} zur gleichen Zeit laufen kann.}.


Wurde bei dem zweiten Aufruf von \ShowDVI{} ein Filename angegeben
(Wichtig: Filename {\it einziger} Parameter), so wird nach dem Ctrl-E
Signal noch das ARexx Kommando
$$\hbox{\tt address "showdvi" "loadnew \%s"}$$
ausgef\"uhrt, wobei f\"ur {\tt \%s} der Filename eingesetzt wird, der
als Parameter dem Programm mit \"ubergeben wurde.
Dabei ist allerdings zu beachten, da\ss{} das File bez\"uglich dem Directory
gesucht wird, das bei dem als erstes gestarteten \ShowDVI{} eingestellt ist.

Noch ein weiteres Signal verwendet \ShowDVI{} -- das Ctrl-F Signal.
Wenn \ShowDVI{} dieses Signal empf\"angt, so wird der \ShowDVI{} Screen
nach vorne geholt und das aktuelle File neu geladen.

Man kann also auch ohne Besitzer von ARexx zu sein, im beschr\"ankten
Rahmen mit dem \ShowDVI{}-Programm kommunizieren. Man kann es zumindestens
mit einem Signal nach vorne holen, aktivieren und das bereits geladene
DVI-File neu einlesen. Die Signale kann man
entweder von einem eigenen Programm verschicken, mittels des
CLI-Kommandos {\tt break} absetzen oder sich ganz einfach durch einen
erneuten Aufruf von \ShowDVI{} erzeugen lassen.

Noch ein Wort zum automatischen Aktivieren von \ShowDVI{}. Wenn man mittels
Ctrl-E oder Ctrl-F \ShowDVI{} aktiviert, so merkt sich dieses das zuvor aktive Window.
Wenn man nun mit der ESC-Taste den \ShowDVI-Bildschirm wieder nach hinten legt,
so wird automatisch das zuvor aktive Window wieder aktiviert.

Auf noch ein weiteres Signal achtet \ShowDVI{}. Und zwar auf Ctrl-C.
Man kann \ShowDVI{} damit praktisch in jeder Lebenslage, sofort und ohne
Nachfrage, beenden.



\subsection{Ben\"otigter Stack}

Im Gegensatz zu fr\"uheren \ShowDVI{} Versionen gibt sich diese nun mit
4000 Bytes Stack zufrieden.



\subsection{In den Hintergrund starten}

Wenn \ShowDVI{} als Hintergrundprogramm gestartet wurde, so werden keine
Ausgaben mehr nach ``stdout'' geschickt. Das bedeutet, da\ss{} im Fehlerfall
auch keine Fehlermeldungen mehr sichtbar sind (falls sich der
\ShowDVI{}-Screen so schnell verabschiedet, da\ss{} man die Meldung dort
nicht mehr lesen konnte). Es empfiehlt sich also in dem Fall das Logfile
nicht auszuschalten und dann anzusehen. Dort steht die genaue
Fehlerursache.

St\"urzt das Programm unkontrolliert ab, so ist leider das Logfile nicht
mehr lesbar (außer man hat das Programm mit der Option {\tt DEBUGSTAT} gestartet.
Man sollte es dann noch einmal im Vordergrund starten, um zu sehen,
ob wenigstens auf dem Window noch eine Fehlermeldung erscheint.

Auf jeden Fall ist ein unkontrollierter Absturz
etwas so Ungew\"ohnliches, da\ss{} man mich sofort benachrichtigen sollte.
Aber bitte mit Informationen, wie ich den Fehler reproduzieren kann!



\subsection{Req.library}

Das Programm funktioniert im Prinzip auch ohne die ``req.library''.
Allerdings fallen dann einige Funktionen aus: Das sind hauptsächlich der
File- und der Font-Requester. Aber auch der Stringrequester der manchmal benötigt
wird, verwendet den Requester aus der ``req.library''.

Unter den Betriebssystemversionen 1.2 und 1.3 werden auch die Bestätigungs\-requester,
die mittels den ARexx Kommandos {\tt okay1} und {okay2} erscheinen, über die
``req.library'' angezeigt.



\section{Das Logfile}

Diese File wurde schon \"ofters im Rahmen dieser Anleitung angepriesen.
Wenn man mit einer Festplatte arbeiten sollte (was sowieso zu empfehlen ist),
sollte man auf die Option {\tt NOLOG}, die das Logfile abschaltet, verzichten.
Der Geschwindigkeitsverlust durch das Anlegen des Logfiles ist so
minimal, da\ss{} der etwaige Nutzen auf jeden Fall \"uberwiegt.
Man kann ja auch über die Option {\tt LOGNAME} den Namen des Logfiles
auf z.B.\ {\tt T:ShowDVI.log} setzen. So ist das Logfile immer vorhanden,
stört aber nicht.
Normalerweise wird das Logfile im aktuellen Directory unter dem Namen {\tt ShowDVI.log}
angelegt.


Welche Informationen enth\"alt dieses Logfile?\parwithoutskip
Zum einen Warnungen wie:
\itemlist{\quad-- }
\next nicht gefundenes Konfigurations File,
\next nicht gefundene vordefinierte Font/Fontlibraries
\next und fehlerhafte DVI-Files.
\enditemlist

Informationen wie:

\itemlist{\quad-- }
\next welche Fonts geladen wurden,
\next wie stark der Font-Speicher ausgelastet wurde,
\next welches DVI-File geladen wurde
\next und -- mit gesetzter {\tt STAT} Option -- eine allgemeine
Statistik \"uber das DVI-File und im Besonderen \"uber das
Fontdefinitions-File. Dort wird dann zum Beispiel auch angegeben, wo
die einzelnen Fonts gefunden wurden.
\enditemlist

Und schlie\ss{}lich Fehlermeldungen, die das \ShowDVI{}-Programm dazu
veranla\ss{}t haben, die Arbeit einzustellen.



\section{Ben\"otigte Soft- Hardware}

An Software ben\"otigt man zuerst einmal ein Programm, das DVI-Files
erzeugt. Im allgemeinen hei\ss{}t dieses Programm {\tt virtex} oder einfach
{\tt tex}. Von sehr gro\ss{}em Nutzen ist auch noch die ``req.library''.
Eine gro\ss{}e Arbeitserleichterung ist ARexx von William S.\ Hawes.

Dann wird {\bf unbedingt} die Library ``{\tt mathieeedoubbas.library}''
benötigt! Der Startup-Code von SAS-C, der diese Library öffnet bringt leider
keine Fehlermeldung, falls die Library nicht geöffnet werden konnte. Das
Programm läßt sich einfach nur nicht starten.\hskip 1cm{\tt :-(}

An Hardware ben\"otigt man vor allem einen Amiga. Die wichtigste
Erweiterung ist dann noch eine Speichererweiterung. 1 MB an Hauptspeicher
ist das absolute Minimum. Eine Festplatte ist, wenn man vern\"unftig
arbeiten m\"ochte, notwendig.
F\"ur das \ShowDVI{}-Programm bracht man nicht mehr als etwa 3 MByte an
Plattenplatz. Falls man allerdings noch die Zeichens\"atze f\"ur seinen
Druckertreiber vollst\"andig auf der Festplatte installieren m\"ochte, so
wird schon etwas mehr gebraucht.



\section{Bekannte Fehler}

Zur Zeit sind mir keine Fehler bekannt$\ldots$

\vskip 1cm
{\hfill $($\it Der Rest der Seite bleibt frei f\"ur eigene Fehler Notizen$)$}
\bye
